首页 > 云计算 > > Docker的使用系列教程-5 Docker 容器使用
容器间的链接有两种方法,你选择其一即可
网络端口映射
docker run -d -P
docker run -d -p
-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。
例如:
docker run -d -P pro/myapp python manager.py上面的命令运行完成后,要通过ps查看可以看到对应的容器端口和主机端口的映射关系。
docker run -d -p 8001:8000 pro/myapp python manager.py
这样我们就可以通过访问 127.0.0.1:8001(主机) 来访问容器的 8000 端口。这里面默认都是绑定TCP
要绑定UDP如下命令:
docker run -d -p 127.0.0.1:8000:8000/udp pro/myapp python manager.py安装mysql
普通命令:
sudo docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7指定编码格式命令:
sudo docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ciDocker容器连接
端口映射并不是唯一把 docker 连接到另一个容器的方法。
docker 有一个连接系统允许将多个容器连接在一起,共享连接信息。
docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。
容器命名
docker run -d -P --name blog pro/myapp python manager.py通过--name设定容器名字
docker inspect -f "{{ .Name }}" aed8addj09a1通过上述命令可以返回涌入名字。
容器不可以重名,一次要修改名字,需要停止容器后删除。
容器连接
如果要连接1个容器,需要先创建容器,然后通过--link连接。
docker run -d --name db mypro/mysql
创建数据库容器
docker run -d -P --name web --link db:db pro/myapp python manager.py 这样就完成了Web容器和DB容器连接到了一起。
--link name:alias
name是我们连接容器的名字,alias是link的别名。让我们看如何使用alias。
下面,我们通过ps查看一下:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16d8fab5b489 mysql:5.7 "docker-entrypoint.s…" 6 seconds ago Up 5 seconds 33060/tcp, 0.0.0.0:3308->3306/tcp sql15.7这里面在Names我们可以看到sql15.7,这说明sql15.7的父/子关系。这里的父容器是db可以访问子容器web。为此docker在容器之间打开一个安全连接隧道不需要暴露任何端口在容器外部。你会注意到当你启动db容器的时候我们没有使用-P或者-p标识。我们连接容器的时候我们不需要通过网络给mySQL数据库开放端口。
这样我们可以通过查询Docker的环境变量就可以看到相关信息了(env命令查看容器的环境变量)
docker run --rm --name web2 --link db:db training/webapp env这样就可以通过容器Names来引用对应容器。
PS:容器中往往没有ping,因此要自己添加
apt-get install -yqq inetutils-ping来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3129174/ ,如需转载,请注明出处,否则将追究法律责任。