实践篇主要以各容器的挂载和附加命令为主。
本章内容
Dockerfile基础命令详解。
本文实操全部基于Ubuntu 20.04
宿主机 => linux服务器本身
Docker => 20.10.22
从该章开始,我们就进入了Docker
实践篇系列了,主要介绍Docker
相关附加命令,与实际日常生产部署注意点等,本章主要围绕Docker
安装并运行之Nginx
、Tomcat
、Jenkins
、GitLab
,大部分命令来源于DockerHub
官网,我们将本章分为上下俩节,为演示方便这里我们新建挂载目录/install_ls
,并对对应的软件本身建立目录,命令如下。
mkdir -p /install_ls/nginx/ /install_ls/tomcat /install_ls/jenkins /install_ls/gitLab
Docker安装并运行Nginx
前边的章节其实很多都是拿Nginx做的例子,但这里还是要详细演示一遍,以及在实际生产中该如何进行配置和进行挂载,这里我们Nginx
的版本以1.22.0
为主,在挂载目录下新建配置文件目录,并从Nginx
官网下载对应的配置文件并上传到服务器中,也可以通过直接启动一个nginx
容器来复制运行中容器的配置文件到宿主机,这里我们通过第二种方式来进行演示。
-
首先我们在
Nginx
挂载目录下新建挂载配置文件目录nginx/conf
与页面目录nginx/html
,执行命令mkdir nginx/conf nginx/html
。
-
快速启动一个
Nginx
,端口随机映射。 -
然后从快速启动并运行中的
Nginx
容器中复制配置文件到宿主机挂载配置文件目录下。 -
停止并删除步骤1快速启动的容器
Nginx
。 -
修改步骤3复制出来的配置文件并在
html
目录下新建测试页面。
-
保存以后我们开始正式启动
Nginx
,命令如下。docker run -d -p 8011:80 \ --name nginx \ -v /install_ls/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /install_ls/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /install_ls/nginx/html:/usr/share/nginx/html \ nginx:1.22.0
-
访问宿主机IP+映射端口,
Nginx
启动完成。
※ Nginx
容器的启动需要注意挂载目录一定要匹配,另外需要注意的在相应的挂载目录变更后需要重启容器,如果是生产环境,建议将挂载目录进行定期冷备,我们这里并没有把Nginx
的日志目录进行挂载,生产环境强烈建议对日志目录进行挂载,方便排查,与环节6挂载命令大同小异,需要的童鞋自行了解。
Docker安装并运行Tomcat
tomcat
也是日常比较常使用的容器,虽然现在有了更好的web
服务器比如undertow
,哈哈~跑题了,我们继续tomcat
,同nginx
一致,tomcat
也需要挂载目录,一般我们针对tomcat
会挂载其日志目录与工作目录。
-
在挂载目录
/install_ls/tomcat
下新建webapps
与logs
目录,执行命令mkdir -p /install_ls/tomcat/webapps /install_ls/tomcat/logs
。
-
启动
tomcat
容器。docker run -d -p 8111:8080 \ -v /install_ls/tomcat/logs:/usr/local/tomcat/logs \ -v /install_ls/tomcat/webapps:/usr/local/tomcat/webapps \ -e TZ="Asia/Shanghai" \ --name tomcat8 \ tomcat:8.0
-
这时访问
tomcat
并不能访问成功,因为webapps
下并没有相应war
包,我这里从gitee
找了一个简单示例下的war
包丢入到挂载的webapps
目录下,重启tomcat
容器,访问webapps
目录可以看到。
然后我们通过挂载的日志目录查看该项目运行日志,执行命令tail -f /install_ls/tomcat/logs/catalina.2023-02-01.log
,可以看到。 -
访问宿主机IP+映射端口+web路径,
tomcat
启动完成,项目正常运行。
※ tomcat
启动方式推荐使用Dockerfile
来启动,同Nginx
一样需要格外注意挂载路径是否完全匹配,另外还需要注意catalina.*.log
日志的大小,需要定期对该日志进行压缩,清除等事项。
☆ 参考文献:
无
◎ 文中所用到的资源链接:
【Nginx官网】
http://nginx.org/en/download.html
【Docker Hub Nginx】
https://hub.docker.com//nginx
【Docker Hub Tomcat】
https://hub.docker.com//tomcat