docker学习笔记(五):网络管理

1009人浏览 / 2人评论

我一直都认为docker的网络管理是docker中最复杂,特别是容器间通信的问题困扰了我很久。

首先我们来看看docker中关于网络的几个命令:

网络管理

查看所有网络

docker networker list

查看某一个网络的详细信息

docker network inspect brige

查看帮助文档

man -k docker

如果上边的命令执行后未看到相应的文档,则执行下面的命令:

mandb

然后再次执行查看指令

创建网络

docker network create mynetwork -d brige --subnet=10.0.0.0/24

使用自定义网络

docker run --network=mynetwork --name=web2 nginx

删除网络

docker network delete mynetwork

容器间通信

容器间通信是docker学习中的难点,主要是因为牵扯到多层网络架构和进程通信问题。

端口映射

端口映射主要使用过-p指令完成的,使用方法如下:

docker run -p 80 --name=web2 nginx

上面的指令执行完后,docker会从宿主机中随机寻找一个未使用的端口作为外部端口,与容器内的80端口映射,其他地方访问该容器只需要访问宿主机的映射端口即可。

但是上诉方法映射的端口随机性太强,不方便使用,所以-p指令也可以指定具体端口,如:

docker run -p 80:80 --name=web2 nginx

冒号前为宿主机端口,冒号后为容器中的端口。访问宿主机的80端口就可以访问到容器的80端口了。

--link选项

docker run --link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。

--link的格式:

--link <name or id>:alias

其中,name和id是源容器的name和id,alias是源容器在link下的别名。

例如:

# 创建mysql容器
docker run -dit --restart=always --name=db -v /db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=blog hub.c.163.com/libarary/mysql

# 创建wordpress容器,并使用--link连接mysql容器
docker run -dit --restart=always --name=blog -v /web:/var/www.html -p 80:80 --link db:mysql hub.c.163.com/library/wordpress

直接访问宿主机的80端口,即可打开wordpress的配置页面,不需要设置数据库链接地址等。

全部评论

2020-07-21 01:07:56.0
Pharmacy That Sell Both Viagra And Dapoxetine gugSkach https://acialisd.com/# - buy cialis viagra Parfreda Cialis Ordonnance Ou Pas Edible <a href=https://acialisd.com/#>cheap cialis</a> waisab Propecia Dosage Hair Loss Proscar Finasteride
2020-06-29 11:34:00.0
Cialis Rezeptfrei Nachnahme https://ascialis.com/ - buy cialis 20mg cialis rash side effects <a href=https://ascialis.com/#>buy online cialis</a> Levitra En Jovenes