《‘狂’人日记》---Docker从入门到进阶之进阶操作(一)

简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 本篇文章将向您展示常用的Docker技术,让您快速入门

提供前面三章的学习,相信大家已经对docker有了初步了解,那么今天就玩点进阶操作,对Docker的网络进行管理

1.容器网络

1.1.映射网络

**容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。\
当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。\
使用 docker ps 可以看到,本地主机的 49153 被映射到了容器的 80 端口。此时访问本机的 49153 端口即可访问容器 内 web 应用提供的界面。**


# 指定映射
docker run -dit --name nginxweb1 -p 8081:80 nginx

# 随机映射
docker run -dit --name nginxweb4 -P nginx

# 查看所有容器
docker ps -a

image.png

1.2.主机网络

可以使用 --network=host 参数来直接使用宿主机网络

docker run -dit --network=host --name nginx-host nginx

image.png

1.3.容器互联

1.3.1 新建网桥

-d 参数指定 Docker 网络类型,有 bridge overlay 。其中 overlay 网络 类型用于 Swarm mode,在本小节中你可以忽略它。

docker network create -d bridge new-net

1.3.2 容器互联创建容器

docker run -dit --name box1 --network new-net busybox
docker run -dit --name box2 --network new-net busybox

1.3.3 容器互联测试

# 进入box1容器
docker exec -it box1 sh

# ping测试
ping box2

image.png

2.自定义docker0网络

当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交 换机。它会在挂载到它的网口之间进行转发。 同时,Docker 随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给 docker0 接口。比如典型的 172.17.42.1 ,掩码为 255.255.0.0 。此后启动的容器内的网口也会自动分配一个同一网段( 172.17.0.0/16 )的 地址。 当创建一个 Docker 容器的时候,同时会创建了一对 veth pair 接口(当数据包发送到一个接口时,另外一个接口也可以 收到相同的数据包)。这对接口一端在容器内,即 eth0 ;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开 头(例如 vethAQI2QT )。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所 有容器之间一个虚拟共享网络。

2.1 移除原有网络

2.1.1 安装btctl命令

yum install -y bridge-utils

[](https://link.juejin.cn?target=)

2.1.2 查询网桥信息

brctl  show

[](https://link.juejin.cn?target=)

2.1..3 关闭docker服务

systemctl stop docker

[](https://link.juejin.cn?target=)

2.1.4 停止docker0网桥

ip link set dev docker0 down

[](https://link.juejin.cn?target=)

2.1.5 删除docker0网桥

brctl delbr docker0

[](https://link.juejin.cn?target=)

2.1.6 查询所有网桥信息

brctl show

image.png

2.2 自定义新网络

2.2.1 创建新网桥bridge0

brctl addbr bridge0

[](https://link.juejin.cn?target=)

2.2.2 查询创建的bridge0

brctl show

image.png[](https://link.juejin.cn?target=)

2.2.3 设置新网桥的网络段地址

ip addr add 192.168.0.1/24 dev bridge0

2.2.4 启动bridge0网桥

ip link set dev bridge0 up

2.2.5 查询bridge0网桥信息

ifconfig bridge0

image.png[](https://link.juejin.cn?target=)

7.4.2.6、添加新网桥到配置文件

vi /etc/sysconfig/docker
# 添加 -b=bridge0 到 OPTIONS 中
OPTIONS='-b=bridge0'

2.2.7 加载配置文件,重启docker服务

systemctl daemon-reload
systemctl restart docker

image.png

2.3 使用新网络部署应用测试docker0网络

2.3.1 创建一个nginx容器

docker run -dit --name nginx-net nginx

2.3.2 查看容器的状态

docker ps -a

image.png[](https://link.juejin.cn?target=)

2.3.3 查看容器的bridge

docker inspect -f {{.NetworkSettings.Networks.bridge}} nginx-net

image.png

目录
相关文章
|
1天前
|
Docker 容器
【Docker】掌握 Docker 镜像操作:从基础到进阶
【Docker】掌握 Docker 镜像操作:从基础到进阶
|
1天前
|
存储 虚拟化 数据中心
|
1天前
|
Ubuntu 应用服务中间件 Shell
Docker入门
Docker入门
28 0
|
1天前
|
存储 Ubuntu Linux
Docker 从入门到实践:Docker介绍
Docker 从入门到实践:Docker介绍
|
1天前
|
应用服务中间件 持续交付 nginx
【Docker专栏】Docker入门指南:快速构建你的第一个容器
【5月更文挑战第7天】Docker 入门指南:容器化应用利器。了解 Docker 核心概念——镜像、容器和仓库。安装 Docker 后,运行官方 `hello-world` 验证安装,再尝试运行 `nginx` Web 服务器。通过端口映射访问容器内服务,学习管理容器命令。创建自定义镜像,编写 Dockerfile,实现 Python Web 应用容器化。Docker 助力高效开发与运维,探索更多自动化部署与微服务场景。
【Docker专栏】Docker入门指南:快速构建你的第一个容器
|
1天前
|
安全 Linux 数据库
Docker 入门详解
通过遵循这些步骤,你将能够快速入门 Docker 并开始探索容器化的世界,关注 V 哥,技术之路一起成长。
|
1天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI 操作报错合集之在本地构建easyrec docker镜像时遇到了无法连接docker服务如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
1天前
|
存储 Apache Swift
无限套娃_docker入门(镜像、容器、仓库)
无限套娃_docker入门(镜像、容器、仓库)
32 0
|
1天前
|
Linux 虚拟化 Docker
docker入门
docker入门
23 2
|
1天前
|
存储 运维 Docker
Docker从入门到精通:Docker 容器数据卷详解
Docker 数据卷是持久化容器数据的关键机制,允许跨容器或主机共享,即使容器删除数据仍保留。创建数据卷可通过命令行或容器启动时指定,挂载到容器目录以读写。使用 `docker volume` 命令可管理数据卷,适用于持久化存储、数据共享及备份场景。了解和善用数据卷能优化 Docker 应用程序的运维。
23 0

热门文章

最新文章

http://www.vxiaotou.com