(1)创建一个叫 my-net 的 bridge 类型的网络
(2)查看都有哪些网络
(3)运行一个容器井连接到新建的 my-net 网络
(4)运行一个容器井加入到 my-net 网络
2:Host 模式
由于使用了 Host 模式,容器会直接使用宿主机的网络端口,因此可以直接在宿主机上通过 localhost 访问容器内的服务,使用 ifconfig 命令可以看到容器的网络和宿主机的是一致的。
3:container 模式
创建 host2 容器共享 host1 容器的网络
査询 host1 容器的网络
査看 host2 容器的网络,确认和 host1 容器的网络一致
4:None 模式
5:0verlay 模式
6:Macvlan 模式
7:自定义网络模式
二:端口映射
1:端口映射
(1)-P(大写):指的是容器应用 PORT 随机映射到宿主机上的 PORT自动绑定所有对外提供服务的容器端口,映射的端口将会从没有使用的端口池中自动随机选择,但是如果连续启动多个容器的话,则下一个容器的端口默认是当前容器占用端口号+1。生产场景一般不使用随机映射,好处是由 docker 分配,宿主机端口不会冲突。
(2)-p(小写):(宿主机 PORT:容器 PORT)
宿主机 IP 不写表示“0.0.0.8”,宿主机 PORT 不写表示随机端口,容器 PORT 必须指定,可以同时对多个端口进行映射绑定。
指定端口映射,在标准化场景下使用频率高。
端口的取值范围 32768--61000 之间
2:随机映射端口
3:指定映射端口
(1)固定端口
(2)宿主机随机端口
三:容器互联
1:使用--1ink 选项(已逐渐被弃用)
(1)创建源容器
(2)创建接收容器
(3)测试容器互联
四:容器间通信实现案例
1:常用选项及解释
(1)--driver,-d
(2)--subnet
(3)--gateway
(4)--ip-range
(5)--internal
(6)--attachable
2:容器间通信步骤
(1)创建自定义网络
(2)创建一个不在此自定义网络的容器
(3)创建两个容器,并加入自定义网络
(4)登录到容器,测试通信结果
第二节:数据持久化技术
一:Docker 的数据管理
1:什么是数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过了容器的文件系统,直接将宿主机上的目录或文件挂载到容器内部。这意味着即使容器被删除,数据卷中的数据也不会丢失,从而实现了数据的持久化存储。
2:数据卷的作用
(1)数据持久化
容器的生命周期可能是短暂的,当容器被删除时,其内部文件系统中的数据也会随之消失。而数据卷可以将数据存储在宿主机上,确保数据不会因为容器的删除而丢失。
(2)数据共享
多个容器可以同时挂载同一个数据卷,从而实现容器之间的数据共享。这对于需要共享配置文件、日志文件或其他数据的应用场景非常有用。
(3)数据备份和恢复
由于数据卷中的数据存储在宿主机上,因此可以方便地进行备份和恢复操作。
(4)分离数据和应用
将数据存储在数据卷中,可以使容器的镜像更加轻量级,只包含应用程序本身,而将数据分离出来,提高了容器的可移植性和可维护性。
2:创建匿名数据卷
3:创建具名数据卷
(1)创建具名数据卷
(2)在创建容器时挂载具名数据卷
4:共享容器数据卷
5:挂载主机目录作为数据卷
(1)将宿主机上的/data1 目录挂载到容器内的/usr/local/apache2/htdocs 目录
docker run -dit -p 8088:80-v /data1:/usr/local/apache2/htdocs --name webe6 httpd
(2)创建测试文件
echo "ni hao">/data1/index.html
(3)访问服务
curl 192.168.10.101:8080
(1)在宿主机创建挂载目录
mkdir -p /www/{conf,html}
(2)准备数据
将编辑好的 nginx 配置文件拷贝到/www/conf
将网站代码拷贝到/www/html
(3)创建容器
docker run -d -p 9090:80
-v /www/conf/nginx.conf:/etc/nginx/nginx.conf
-v/www/html:/www/html
-v/www/nginx/log:/var/log/nginx
--name webo8 nginx "nginx"