美文网首页
Docker 容器连接

Docker 容器连接

作者: Criss陈磊 | 来源:发表于2019-10-22 13:51 被阅读0次

Docker 容器连接

容器间的链接有两种方法,你选择其一即可

网络端口映射

docker run -d -P  
docker run -d -p

-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。

例如:

docker run -d -P training/webapp python app.py

上面的命令运行完成后,要通过ps查看可以看到对应的容器端口和主机端口的映射关系。

docker run -d -p 5001:5000 training/webapp python app.py

这样我们就可以通过访问 127.0.0.1:5001(主机) 来访问容器的 5000 端口。这里面默认都是绑定TCP要绑定UDP如下命令:

docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

Docker容器连接

端口映射并不是唯一把 docker 连接到另一个容器的方法。

docker 有一个连接系统允许将多个容器连接在一起,共享连接信息。

docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。

容器命名

docker run -d -P --name runoob training/webapp python app.py

通过--name设定容器名字

docker inspect -f "{{ .Name }}" aed84ee21bde

通过上述命令可以返回涌入名字。

容器不可以重名,一次要修改名字,需要停止容器后删除。

容器连接

如果要连接1个容器,需要先创建容器,然后通过--link连接。

docker run -d --name db training/postgres
创建数据库容器
docker run -d -P --name web --link db:db training/webapp python app.py

这样就完成了Web容器和DB容器连接到了一起。

--link name:alias

name是我们连接容器的名字,alias是link的别名。让我们看如何使用alias。

下面,我们通过ps查看一下:

$ docker ps
    CONTAINER ID  IMAGE                     COMMAND               CREATED             STATUS             PORTS                    NAMES
    349169744e49  training/postgres:latest  su postgres -c '/usr  About a minute ago  Up About a minute  5432/tcp                 db
    aed84ee21bde  training/webapp:latest    python app.py         16 hours ago        Up 2 minutes       0.0.0.0:49154->5000/tcp  db/web,web

这里面在Names我们可以看到db/web,这说明db/web的父/子关系。这里的父容器是db可以访问子容器web。为此docker在容器之间打开一个安全连接隧道不需要暴露任何端口在容器外部。你会注意到当你启动db容器的时候我们没有使用-P或者-p标识。我们连接容器的时候我们不需要通过网络给PostgreSQL数据库开放端口。

这样我们可以通过查询Docker的环境变量就可以看到相关信息了(env命令查看容器的环境变量)

docker run --rm --name web2 --link db:db training/webapp env

这样就可以通过容器Names来引用对应容器。

PS:容器中往往没有ping,因此要自己添加apt-get install -yqq inetutils-ping

    root@aed84ee21bde:/opt/webapp# ping db
    PING db (172.17.0.5): 48 data bytes
    56 bytes from 172.17.0.5: icmp_seq=0 ttl=64 time=0.267 ms
    56 bytes from 172.17.0.5: icmp_seq=1 ttl=64 time=0.250 ms
    56 bytes from 172.17.0.5: icmp_seq=2 ttl=64 time=0.256 ms

关注我,关注测试
FROM:https://blog.csdn.net/crisschan

相关文章

  • ipv4 forwarding

    某次虚拟机突然连接不上,docker启动的redis也无法连接,重启容器也不行。删掉容器,重启docker,重建容...

  • Docker 容器连接

    网络端口映射 -P 内部随机映射 -p 绑定端口 为容器命名 runoob-nginx-test容器名称 拷贝容器...

  • Docker 容器连接

    Docker 容器连接 容器间的链接有两种方法,你选择其一即可 网络端口映射 例如: 上面的命令运行完成后,要通过...

  • Docker 容器连接

    前面我们实现了通过网络端口来访问运行在 docker 容器内的服务。下面我们来实现通过端口连接到一个 docker...

  • mysql5.7 修改密码

    1、进入docker容器 2、连接mysql 3、需要修改的库 4、重启docker

  • 【Docker】MySQL使用参考

    创建mysql容器 命令行连接mysql容器 或者先进入docker宿主机,然后连接mysql 使用客户端连接my...

  • Docker的网络模式

    Docker 支持的网络模式有: none。关闭容器内的网络连接 bridge。通过 veth 接口来连接容器,默...

  • Docker 中如何连接多个 Container 协同工作

    在Docker使用部分我们接触到了通过网络端口来连接运行在Docker容器内的服务。这是同Docker容器内服务和...

  • Docker创建可以SSH连接的容器

    #Docker创建可以SSH连接的容器 1.安装Docker(略) 2.获取基础镜像 docker images可...

  • docker跨主机联通

    当Docker容器进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接...

网友评论

      本文标题:Docker 容器连接

      本文链接:https://www.haomeiwen.com/subject/cojqvctx.html