Docker 常用软件安装(九)
摘要:本文介绍通过 Docker 安装部署常用软件 Tomcat、mysql 和 nginx 。
一、Tomcat 安装
1、查找镜像
Tomcat 镜像可以通过访问 docker hub 或者通过命令 docker search
来查找。
示例:通过 docker hub 查找 Tomcat 镜像。
使用命令 docker search tomcat
进行镜像搜索。
2、镜像拉取和查看
镜像拉取:
1 | docker pull tomcat |
查看镜像:
1 | [root@localhost ~]# docker images |
3、运行 tomcat 容器
运行 tomcat 命令如下:
1 | docker run -d --name mytomcat -p 8080:8080 tomcat:latest |
查看 tomcat 容器运行状态:
1 | docker ps |
4、访问 tomcat 首页
访问 http://ip:8080 验证容器运行是否正常。
由于 Tomcat 10 版本猫主页位置内容变更,所以进入容器需要修改主页目录内容。
1 | 进入 tomcat 容器 |
再次访问 http://ip:8080 验证容器运行是否正常。
5、附加内容:tomcat 8 版本安装
tomcat 8 版本无需修改主页,运行命令如下:
1 | docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8 |
注意,此镜像无需额外pull
,本地无此镜像,会自动pull
该镜像。
二、mysql 安装
1、查找镜像
mysql 镜像可以通过访问 docker hub 来查找。
示例:通过 docker hub 查找 mysql:5.7
镜像。
2、镜像拉取和查看
镜像拉取:
1 | docker pull mysql:5.7 |
查看镜像:
1 | [root@localhost ~]# docker images |
3、运行 mysql 容器
(1) 运行 mysql 命令如下:
1 | docker run -d -p 3306:3306 \ |
参数说明:
--privileged=true
:授予权限-v /whb/mysql/log:/var/log/mysql
:日志数据卷挂载。-v /whb/mysql/data:/var/lib/mysql
:数据数据卷挂载。-v /whb/mysql/conf:/etc/mysql/conf.d
:配置数据卷挂载。-e MYSQL_ROOT_PASSWORD=123456
:通过环境变量配置 mysql root 密码。
(2) 查看 mysql 容器运行状态:
1 | docker ps |
4、mysql 配置文件修改
(1) my.cnf 文件修改,解决中文字符乱码文件。
在本地 /whb/mysql/conf
路径下新建文件my.cnf
,内容如下。
1 | [root@localhost ~]# cat /whb/mysql/conf/my.cnf |
(2) 重启 mysql 容器,并查看字符编码
重启容器:
1 | docker restart mysql |
查看字符编码:
1 | 进入 mysql 容器 |
5、创建数据库,并插入数据
1 | 创建数据库 whbblog |
6、附加测试
问:删除容器,再次创建容器挂载数据卷,查看数据是否存在?
答:此处实验内容省略,数据还在。
三、nginx 安装
1、查找镜像
nginx 镜像可以通过访问 docker hub 来查找。
示例:通过 docker hub 查找 nginx
镜像。
2、镜像拉取和查看
命令 | 描述 |
---|---|
docker pull nginx | 下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest ) |
docker pull nginx:xxx | 下载指定版本的Nginx镜像 (xxx指具体版本号) |
镜像拉取:
1 | docker pull nginx |
查看镜像:
1 | [root@localhost ~]# docker images |
3、创建 nginx 配置文件
启动前需要先创建 nginx 外部挂载的配置文件 /home/nginx/conf/nginx.conf
,之所以要先创建 , 是因为 nginx 本身容器只存在 /etc/nginx
目录 , 本身就不创建 nginx.conf
文件,当服务器和容器都不存在 nginx.conf
文件时, 执行启动命令的时候 docker 会将 nginx.conf
作为目录创建 , 这并不是我们想要的结果 。
1 | 创建挂载目录 |
容器中的 nginx.conf
文件和 conf.d
文件夹复制到宿主机。
1 | 生成容器 |
查看复制到本地的配置文件
1 | [root@localhost ~]# tree /home/nginx |
删除运行的容器
1 | docker rm -f nginx |
4、创建nginx容器并运行
nginx容器运行命令:
1 | docker run \ |
参数说明:
参数 | 说明 |
---|---|
-p 80:80 | 将容器的 80(后面那个) 端口映射到主机的 80(前面那个) 端口 |
–name nginx | 启动容器的名字 |
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf | 挂载nginx.conf配置文件 |
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d | 挂载nginx配置文件 |
-v /home/nginx/log:/var/log/nginx | 挂载nginx日志文件 |
-v /home/nginx/html:/usr/share/nginx/html | 挂载nginx内容 |
nginx:latest | 本地运行的版本 |
-d | 后台运行 |
查看容器运行情况:
5、访问测试
访问 http://ip:port ,查看页面是否正常。
修改本地数据卷 /home/nginx/html/index.html
重启 nginx 容器,再次访问nginx容器。
1 | docker restart nginx |