Docker容器单机网络架构全攻略:从IP地址到路由的全面解析一 docker网络学习基础1.1 拉取 alpine 镜像1.2 运行容器1.3 进入容器终端1.4 连接到正在运行中的容器1.5 查看容器的ip地址1.6 查看容器的路由
Docker容器单机网络架构全攻略:从IP地址到路由的全面解析
一 docker网络学习基础
1.1 拉取 alpine 镜像
[superman@docker ~]$ docker pull alpine
示例:
[superman@docker ~]$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
59bf1c3509f3: Pull complete
Digest: sha256:21a3deaa0d32a8057914f36584b5288d2e5ecc984380bc0118285c70fa8c9300
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
[superman@docker ~]$
[superman@docker ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd_superman 1.0 f0d394fd69d5 13 days ago 144MB
tomcat latest fb5657adc892 2 years ago 680MB
httpd 2.4 dabbfbe0c57b 2 years ago 144MB
httpd latest dabbfbe0c57b 2 years ago 144MB
alpine latest c059bfaa849c 2 years ago 5.59MB
[superman@docker ~]$
1.2 运行容器
[superman@docker ~]$ docker run -dit --name superman01 alpine
示例:
[superman@docker ~]$ docker run -dit --name superman01 alpine
a2804a814851c7a6316a36ae7c7801b253e133efe9fb5fac3e2999c838e12be1
[superman@docker ~]$
[superman@docker ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a2804a814851 alpine "/bin/sh" 8 seconds ago Up 7 seconds superman01
[superman@docker ~]$
1.3 进入容器终端
进入容器终端并且保留容器终端的输入形式。
[superman@docker ~]$ docker exec -it superman01 ash
示例:
[superman@docker ~]$ docker exec -it superman01 ash
/ #
/ # ip add list
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
8: eth0@if9: mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ #
/ # exit
[superman@docker ~]$
1.4 连接到正在运行中的容器
[superman@docker ~]$ docker attach superman01
示例:
[superman@docker ~]$ docker attach superman01
/ #
/ # ip add list
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
8: eth0@if9: mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ #
/ # exit
[superman@docker ~]$
1.5 查看容器的ip地址
[superman@docker ~]$ ip add show
示例:
[superman@docker ~]$ docker exec -it superman01 ash
/ #
/ # ip add show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
10: eth0@if11: mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
/ #
/ # exit
[superman@docker ~]$
1.6 查看容器的路由
[superman@docker ~]$ route -n
示例:
[superman@docker ~]$ docker attach superman01
/ #
/ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.17.0.1 0.0.0.0 UG 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
/ #
/ # exit
[superman@docker ~]$
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我吧!
? 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
