Docker学习笔记-两种发布方式


第一种,自己手写dockerfile发布,上传至hubDocker

  1. 正常发布到文件夹中,发布文件上传至linux机器上。如 /www/app
  2. 将Dockerfile文件也复制到同目录 。/www/app
  3. 输入 docker image build -t demo .,构建一个demo名字的镜像。这个时候就会构建镜像,输入docker images可以查看当刚刚生成的镜像。也可以看到下面会用到的IMAGEID
  4. 输入docker run --name=demo -d -p 8000:80 -v /www/app:/app demo
  5. 这时候访问ip:8000就可以了,输入docker ps可以看到正在运行的容器的信息。
  6. 上传镜像到hubDocker,输入docker login然后登录。
  7. 打标签docker tag IMAGEID hanfan/demo:1.0 推送docker push hanfan/demo:1.0
  8. 其他人就可以docker pull hanfan/demo:1.0拉取运行镜像了。
  9. 使用Nginx反向代理
  10. 搞定

第二种,使用VS2017或者VS2019(其他的没试过)

  1. 项目点右键添加Docker支持,选择Liunx,也会生成一个dockerfile文件,这个文件的坑更加项目自己去排坑
  2. 点击解决方案添加docker-compose项目
  3. 运行,这个时候会生成一个镜像。输入docker images可以查看。
  4. 镜像都生成好了,就上第一种一样的操作了
  5. 搞定

写一个自己的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"]

你可能感兴趣的:(Docker学习笔记-两种发布方式)