目录

一、Docker的数据管理

1.1 两种方式

1.2 数据卷

1.2.1 概述

1.2.2 创建格式

1.2.3 创建文件测试

1.3 数据卷容器

1.3.1 概述

1.3.2 创建一个容器作为数据卷容器

1.3.3 挂载数据卷容器中的数据卷到新的容器

二、端口映射

2.1 概述

2.2 创建格式

2.3 浏览器访问

三、容器互联(使用centos镜像)

3.1 概述

3.2 创建格式


一、Docker的数据管理

1.1 两种方式

管理Docker容器中数据主要有2种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)

1.2 数据卷

1.2.1 概述

数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作

1.2.2 创建格式

docker run -itd -v /var/www:/data1 --name web1 centos:7 /bin/bash 
 #宿主机目录/var/www挂载到容器中的/data1

-v:在容器内创建数据卷
注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径

docker卷映射关系 docker 磁盘映射_docker

 

1.2.3 创建文件测试

1.在宿主机的挂载目录创建文件测试数据卷
2.在数据卷创建文件测试宿主机的挂载目录

docker卷映射关系 docker 磁盘映射_运维_02

docker卷映射关系 docker 磁盘映射_bash_03

1.3 数据卷容器

1.3.1 概述

如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用

1.3.2 创建一个容器作为数据卷容器

docker run -itd --name web2 -v /data1 -v /data2 -v /data3 centos:7 /bin/bash                
docker exec -it a7e8d75f8b50 bash  #进入数据卷容器
echo "woshiwufifan" > /data1/abc.txt
echo "woshigutianle" > /data2/ABC.txt
echo "woshizhazhahui" > /data3/123.txt
exit

docker卷映射关系 docker 磁盘映射_bash_04

1.3.3 挂载数据卷容器中的数据卷到新的容器

使用--volumes-from来挂载web2容器中的数据卷到新的容器

docker run -itd --volumes-from web2 --name web3 centos:7 /bin/bash
docker exec -it 789f1102b435 bash   #进入新容器
cat /data1/abc.txt
cat /data2/ABC.txt
cat /data3/123.txt

docker卷映射关系 docker 磁盘映射_数据_05

 

二、端口映射

2.1 概述

在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。端口映射机制将容器内的服务提供给外部网络访问,实质上就是将宿主机的端口映射到容器中,使得外部网络访问宿主机的端口便可访问容器内的服务

2.2 创建格式

docker pull nginx                         #拉取nginx镜像
docker run -itd --name test1 -P nginx       #随机映射端口( 从32768开始)
docker run -itd --name test2 -p 43999:80 nginx

docker卷映射关系 docker 磁盘映射_运维_06

 

2.3 浏览器访问

http://192.168.80.11:49153
http://192.168.80.11:43999

docker卷映射关系 docker 磁盘映射_docker卷映射关系_07

docker卷映射关系 docker 磁盘映射_docker卷映射关系_08

三、容器互联(使用centos镜像)

3.1 概述

容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息

3.2 创建格式

1.#创建并运行源容器取名web1
docker run -itd -P --name web1 centos:7 /bin/bash
2.#创建并运行接收容器取名web2,使用--1ink选项指定连接容器以实现容器互联
3.docker run -itd -P --name web2 --link web1:sb centos:7 /bin/bash      #--link容器名:连接的别名
4.#进web2容器,ping sb/web1
docker exec -it web2 bash
ping web1/sb

docker卷映射关系 docker 磁盘映射_数据_09

docker卷映射关系 docker 磁盘映射_bash_10

docker卷映射关系 docker 磁盘映射_数据_11

docker卷映射关系 docker 磁盘映射_bash_12

docker卷映射关系 docker 磁盘映射_docker卷映射关系_13

docker卷映射关系 docker 磁盘映射_运维_14