运行环境:
CentOS 7.0
容器:Docker 1.13.1
.Net Core版本: .NET Core 2.1,安装详见 CentOS 7 下安装.NET Core SDK 2.1
1.安装docker
(1)安装docker
sudo yum install docker
(2)启动docker
systemctl start docker.service
(3)配置开机启动
systemctl enable docker.service
(4)查看docker版本信息
docker version
2.部署程序
(1)准备你的.net core web程序
(2)确保你的项目能在windows上运行
(3)添加Dockerfile
填入如下内容
#基于 `microsoft/dotnet:2.1-aspnetcore-runtime` 来构建我们的镜像
FROM microsoft/dotnet:2.1-aspnetcore-runtime
#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中
COPY . /publish
#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
WORKDIR /publish
#设置Docker容器对外暴露80端口
EXPOSE 80
#使用`dotnet HelloWorld.dll`来运行应用程序
ENTRYPOINT ["dotnet", "HelloWorld.dll"]
并设置Dockerfile属性
(4)发布
发布完成后可看到如下文件结构
(5)上传应用程序到linux
这里使用了xftp工具上传到linux
(6)切换到Dockerfile所在目录
cd /home/vsftpd/admin/publish
(7)生成镜像
构建一个名字叫 helloworld的镜像,注意build命令后面的 . 不可去掉,这个 . 代表的是当前构建镜像的上下文路径
docker build -t helloworld .
看到Successfully就说明镜像构建成功了
(8)查看生成的镜像
docker images
(9)运行docker容器
docker run --name helloworldtest -d -p 6002:80 helloworld
helloworldtest 容器的名称
helloworld 镜像名称
-d 后台进程
-p 是进行宿主和容器之间端口的映射(-p 宿主端口:容器端口)
(10)检验docker容器是否运行成功
docker ps -a
(11)因为运行docker容器的时候进行了端口映射, 所以外部访问端口为6002
3.删除镜像步骤
需先停止容器,然后删除容器,最后才删除镜像
(1)查看容器ID及状态
docker ps -a
(2)停止容器(90a31caf1297是容器ID)
docker stop 90a31caf1297
(3)删除容器(90a31caf1297是容器ID)
docker rm 90a31caf1297
(4)查看镜像ID
docker images
(5)删除镜像(bfed045a3f12是镜像ID)
docker rmi bfed045a3f12
参考:https://www.cnblogs.com/lijianhui/p/8057422.html