Docker 项目实践(一)

117 阅读2分钟

将项目运行的环境所需要的组件进行分类,一一梳理

持久型组件

环境: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  

详细分析

image-20210606165948430.png

属性说明
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# 

测试结果

image-20210606214655406.png