一、准备工具

Win 10

Centos 8

Visual Studio 2019

Docker Desktop  下载地址:https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe

二、Cenos 8安装docker

1、安装

 yum install docker          安装docker
systemctl start docker.service  启动docker服务
systemctl enable docker.service  设置docker服务开机自启动

2、检查

 docker -v

 三、创建.net core 3.1项目并发布

1、创建项目

 注意:勾选启用Docker支持,选择Linux。

注意:将Dockerfile文件属性改为:始终复制。

 2、生成项目,现在本地使用docker运行,保证项目正常运行。

第一次运行的时候,会提示你运行Docker Desktop,无脑点是。继续运行会自动下载运行项目时所需要的镜像,静等complete即可。

3、本地运行成功

 4、本地发布

发布后的文件结构

 5、修改Dockerfile文件地址

由于我们是发布到本地,vs帮我们自动生成的Dockerfile文件里,包含了生成—>发布—>运行的所有流程,在这里,我们只需要最后一步运行的数据就行了。

dockerfile文件指令说明:

  • FROM -指定所创建镜像的基础镜像
  • WORKDIR-配置工作目录
  • EXPOSE-声明镜像内服务监听的端口 (可以不写,因为我们具体映射的端口可以在运行的时候指定)
  • COPY-复制内容到镜像   (. .代表当前目录)
  • ENTRYPOINT-启动镜像的默认人口命令

6、打包到Centos 8服务器,我这里使用的是:SecureCRT

 7、构建docker镜像

  进入到服务器的相关文件夹路径,输入:

 docker build -t mytest-mvc .

注意:结尾的 . 不能漏掉

参数解释:

  • -t 指定镜像名称 (只能小写)
  • .  表示build上下文为当前目录,默认情况docker会使用上下文的根目录找到Dockerfile文件

查看构建的镜像,输入:

 docker image ls

 8、创建并运行容器

 docker run --name myfirstWeb  -d -p 5001:2345  firstdocker

参数解释:

  • --name  表示容器名称(区分大小写),也可以不指定,默认会生成
  • -d          表示在后台以守护形式运行容器
  • -p          表示外部端口与内部容器端口映射。关于-p的还有其他用法(https://www.cnblogs.com/williamjie/p/9915019.html)
  • 结尾       表示上一步创建的镜像名称

查看容器运行情况,输入:

 docker ps -a

 最后,我们在本地请求:

如果发现请求不了,多半是下面两种情况:

1、对外映射的端口没开启。

 //查询端口号XXX 是否开启
firewall-cmd --query-port=XXX/tcp
//开启端口
firewall-cmd --zone=public --add-port=XXX/tcp --permanent
//重启防火墙
firewall-cmd --reload

2、创建运行容器时监听的端口弄错了:

 //查看容器运行日志
docker logs 容器ID


容器相关常用命令:

 //查看容器运行日志
docker logs 容器名称/容器ID
//停止运行容器
docker stop 容器名称/容器ID
//删除容器
docker rm 容器名称/容器ID
//重启容器服务
systemctl restart docker

最新文章

  1. jquery与自己写的js文件冲突解决办法
  2. OC NSArray 数组
  3. Web性能--TCP的构成
  4. 计算第K个素数
  5. css样式表 格式与布局
  6. Linux 学习手记(5):使用Vim文本编辑器
  7. Android ADT 下载 ( ADT-23.0.7 )
  8. random模块使用
  9. json遍历key value
  10. UVA11038- How Many O's?(组合数学)
  11. Eclipse用法和技巧十:显示代码outline
  12. WebService-03-使用CXF开发服务端和客户端
  13. 关于Android文件Apk下载的那点事
  14. Forth 文本解释程序
  15. Java序列化相关
  16. xmanager 乱码
  17. 2017_CET4_CET6_正规段子——正规!正规!解析!段子手勿入!
  18. RabbitMQ简单使用
  19. Java内存不足之PermGen space错误探究
  20. PHP数据库常用常量笔记

热门文章

  1. scrapy shell 遇到的问题
  2. Ethical Hacking - NETWORK PENETRATION TESTING(8)
  3. T133309 57级返校测试重测-T2-选票统计
  4. Ubuntu18.04安装GitLab搭建私有仓库服务器过程笔记
  5. [jvm] -- 引用篇
  6. HashMap源码实现分析
  7. Mysql5.7前后修改用户密码变化
  8. Java继承之面向对象
  9. 一文了解JDK12 13 14 GC调优秘籍-附PDF下载
  10. 今天发现郭的华为手机无法读写sd卡,找到了这个方法