第一种,自己手写dockerfile发布,上传至hubDocker
-
正常发布到文件夹中,发布文件上传至linux机器上。如 /www/app
-
将Dockerfile文件也复制到同目录 。/www/app
-
输入
docker image build -t demo .
,构建一个demo名字的镜像。这个时候就会构建镜像,输入docker images
可以查看当刚刚生成的镜像。也可以看到下面会用到的IMAGEID -
输入
docker run --name=demo -d -p 8000:80 -v /www/app:/app demo
-
这时候访问ip:8000就可以了,输入
docker ps
可以看到正在运行的容器的信息。 -
上传镜像到hubDocker,输入
docker login
然后登录。 -
打标签
docker tag IMAGEID hanfan/demo:1.0
推送docker push hanfan/demo:1.0
-
其他人就可以
docker pull hanfan/demo:1.0
拉取运行镜像了。 -
使用Nginx反向代理
-
搞定
第二种,使用VS2017或者VS2019(其他的没试过)
-
项目点右键添加Docker支持,选择Liunx,也会生成一个dockerfile文件,这个文件的坑更加项目自己去排坑
-
点击解决方案添加docker-compose项目
-
运行,这个时候会生成一个镜像。输入
docker images
可以查看。 -
镜像都生成好了,就上第一种一样的操作了
-
搞定
写一个自己的dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
COPY . .
RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so
RUN echo "deb http://mirrors.aliyun.com/debian wheezy main contrib non-free deb-src http://mirrors.aliyun.com/debian wheezy main contrib non-free deb http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free deb-src http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free deb http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free deb-src http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free" > /etc/apt/sources.list
EXPOSE 80
RUN apt-get update
RUN apt-get install libgdiplus -y && ln -s libgdiplus.so gdiplus.dll
FROM base AS final
WORKDIR /app
ENTRYPOINT ["dotnet", "xxxxx.dll"]