在Linux环境下使用Docker打包.net framework项目的镜像

-
在visual Stdio 解决方案下面的应用程序 =》 添加 =》 Docker支持

-
选Linux配置
-
确定后会自动生成如下Dockerfile文件,如果没有生成Dockerfile文件,可以先把别的Dockerfile文件拷贝过来,等下再配置

2.Visual Stdio 配置Dockerfile文件 =》 发布项目
-
你可以直接在Visual Stdio直接打开Dockerfile进行配置,也可以把发布后的文件上传到服务器,在服务器配置Dockerfile
发
-
发布项目
![]()
3.Linux服务器安装Docker 并配置环境
-
注:如果你yum命令能正常使用请忽略下面步骤
我服务器是CentOS 8版本,和CentOS 7版本略有不同,CentOS 8版本可能出现yum命令不能用的情况需要去配置,为什么提到yum命令呢?因为我们需要yam命令在CentOS 系统下部署Docker环境。
如果你用的CentOS 8且yum命令不能使用,请参考如下文章 https://blog.csdn.net/c_zzz/article/details/123918398
如果你yum命令能正常使用请忽略上面步骤
在Linux服务器安装Docker
-
安装Docker,安装yum源中默认的Docker。
$ yum -y install docker
-
安装社区版Docker(docker-ce)。
-
运行以下命令,下载docker-ce的yum源。
$ wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
运行以下命令,安装docker-ce
$ yum -y install docker-ce
-
运行以下命令,启动Docker服务。
$ systemctl start docker
-
运行以下命令,查看Docker服务的运行状态。
回显信息如下图所示,表示Docker服务处于运行中的状态。
-

4.把.NET应用文件上传服务器
我这里使用的Xftp上传

5.在服务器把.NET应用文件里面的Dockerfile移动到上一级目录
-
我们现在把项目发布文件里面的Dockerfile文件往外移一级
-
把pools ,nginx ,supervisord.conf这三个文件复制过来
![]()
-
配置Dockerfile文件 直接把下面这堆文件粘贴到Dockerfile文件里面
FROM mono:latest
LABEL maintainer="Marcos Junior junalmeida@gmail.com"
RUN apt-get update \ && apt-get install -y \ iproute2 supervisor ca-certificates-mono fsharp mono-vbnc nuget \ referenceassemblies-pcl mono-fastcgi-server4 nginx nginx-extras \ openssh-server apache2 supervisor\ && rm -rf /var/lib/apt/lists/* /tmp/* \ && echo "daemon off;" | cat - /etc/nginx/nginx.conf > temp && mv temp /etc/nginx/nginx.conf \ && sed -i -e 's/www-data/root/g' /etc/nginx/nginx.conf
COPY nginx/ /etc/nginx/ COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY pools/ /etc/mono/pools COPY AppService/ /var/www/iis
EXPOSE 80
ENTRYPOINT [ "/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf" ]

6.安装Mono
-
首先导入存储库的GPG密钥:
$ gpg --keyserver keyserver.ubuntu.com --recv-key 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
-
通过运行以下命令将Mono存储库添加到您的系统中:
$ dnf config-manager --add-repo https://download.mono-project.com/repo/centos8-stable.repo
-
启用存储库后,安装Mono:
$ sudo dnf install mono-complete
-
通过运行以下打印Mono版本的命令来验证安装:
$ mono --version
7.开始构建镜像
-
执行下面的命令,根据Dockerfile文件构建镜像:
docker build -t dockerdemo .
-
安装wget
yum -y install wget

-
安装 yum-utils
yum -y install yum-utils

-
查看docker版本
docker version

-
启动docker =》如果没有报错就配置好了
-
![]()
上面什么都没显示就是部署好了=》直接跳过这一步操作 进入8
下面是没有部署好的
systemctl start docker

配置容器
yum erase podman uildah

yum install -y yum-utils

sudo yum-config-manager \

配置好后,启动容器
systemctl start docker

8.使用容器建立、运行镜像
建立镜像
docker build -t myhello:v3 -f Dockerfile .

查看所有镜像
docker images

运行镜像
docker run -d -p 5000:80 myhello:v3

列出所有在运行的镜像信息
docker ps

列出所有镜像信息
docker PS -a

9.镜像运行后在浏览器测试输入ip和端口号 ,查看是否能访问:

访问成功
就可以打包了
10.导出镜像
使用下面的命令导出镜像到当前目录
docker export 镜像ID > 导出压缩包名称.tar
参考下面图片






浙公网安备 33010602011771号