一、数据卷
1.数据卷
持久性
docker run -it --name=c1 -v /root/data:/root/data_conf centos:7 /bin/bash
docker run -it --name=c1 -v ~/data:/root/data_conf centos:7 /bin/bash
一个容器挂载两个目录
docker run -it --name=c2 \
-v ~/data2:/root/data_2 \
-v ~/data3:/root/data_3 centos:7 /bin/bash
两个容器挂一个数据卷
docker run -it --name=c6 -v ~/data:/root/data_5 centos:7 /bin/bash
2.数据卷容器
多容器 进行数据交换
1)多个容器挂载同一个数据卷
2)数据卷容器
配置数据卷容器
1. 创建启动c13数据卷容器,使用-v参数设置数据卷
docker run -it --name=c13 -v /volume centos:7
2. 创建启动c11 c12 容器,使用--volumes-from参数设置数据卷
docker run -it --name=c11 --volumes-from c13 centos:7
docker run -it --name=c12 --volumes-from c13 centos:7
docker inspect c6 可以查到容器里面数据卷的对应关系
二、应用部署
Mysql部署
1.搜索镜像
docker search mysql
2.拉取镜像
docker pull mysql:5.6
3.创建容器,设置端口映射,目录映射
在root目录下创建mysql的目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
4.进入到mysql容器里面
docker exec -it c_mysql /bin/bash
5.操作容器中的mysql
容器内的网络服务和外部机器不能直接通信
外部机器和宿主机可以直接通信
宿主机和容器可以直接通信
当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部机器访问宿主机的该端口,从而间接访问容器的服务。
这种操作成为:端口映射
Tomcat部署
在docker容器中部署Tomcat,并通过外部机器访问Tomcat部署的项目
1.搜索Tomcat
docker search tomcat
2.拉取Tomcat
docker pull tomcat
3.创建容器
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
项目写好放在tomcat目录下 访问即可
Nginx部署
1.搜索Nginx
docker search nginx
2.拉取Nginx
docker pull nginx
3.创建容器
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
vim nginx.conf
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
redis部署
1.搜索
docker search redis
2.拉取
docker pull redis
3.创建容器
docker run -id --name=c_redis \
-p 6379:6379 \
redis
4.外部机器链接redis
redis-cli.exe -h 192.168.110.136 -p 6379
三、dockerfile
docker镜像原理