将项目运行的环境所需要的组件进行分类,一一梳理
持久型组件
环境:docker-library/mysql 5.7
说明:这里只是拿mysql举例,实质例如Redis、Rabbitmq、MongoDB这些组件皆可按如下思路效仿
启动指令
[root@localhost ~]# docker run -d --name mysql02 -v mysql02_volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql123 mysql
查看mysql02
[root@localhost ~]# docker volume inspect mysql02_volume
详细分析
属性 | 说明 |
---|---|
Volume | 容器启动后数据在容器内存放的位置信息,请查看mysq的dockerfile |
Mountpoint | 宿主机内存放数据的路径信息,简单点说可以理解为宿主机与容器存放数据的文件夹映射关系 |
指令 | 说明 |
---|---|
docker volume ls | 宿主内用于存放数据的文件夹的名字 |
-v mysql02_volume:/var/lib/mysql | 采取自定义volume名字的方式来增加可读性 |
总结: 我们需要为创建的持久型容器定义自己方便记忆且识别的名称
volume 默认的路径为/var/lib/docker/volumes/ 这里存放着可能有mysql、redis等一系列用 于存放数据的文件夹
服务器型组件
启动指令
[root@localhost ~]# docker pull tomcat:8.5
[root@localhost ~]# docker run -d -p 8097:8080 -v /data/sbproject:/usr/local/tomcat/webapps/sbproject --name tomcat01 tomcat:8.5
查看tomcat01
docker inspect tomcat01
"Mounts": [
{
"Type": "bind",
"Source": "/data/sbproject",
"Destination": "/usr/local/tomcat/webapps/sbproject",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
详细分析
属性 | 说明 |
---|---|
Source | 宿主机项目项目存放的路径,比如war、jar、可以是一个h5 |
Destination | 容器内项目启动的位置路径 |
进入/data/sbproject 目录下创建一个test.html
[root@localhost webapps]# cd /data/sbproject/
[root@localhost sbproject]# vim test.html
进入tomcat01容器内sbproject文件夹下
[root@localhost ~]# docker exec -it tomcat01 bash
root@d5a16581af1e:/usr/local/tomcat# cd webapps/sbproject/
root@d5a16581af1e:/usr/local/tomcat/webapps/sbproject# ls -ll
total 4
-rw-r--r--. 1 root root 32 Jun 6 13:40 test.html
root@d5a16581af1e:/usr/local/tomcat/webapps/sbproject#
测试结果