docker-5.网络

Posted liang-yao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-5.网络相关的知识,希望对你有一定的参考价值。

端口映射

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

-P    映射随机端口,随机端口范围由/proc/sys/net/ipv4/ip_local_port_range定义

通过docker port查看映射的端口

docker port backstabbing_hodgkin

5000/tcp -> 0.0.0.0:32775

docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                      NAMES

b3bab6730061        training/webapp     "python app.py"     4 seconds ago        Up 4 seconds        0.0.0.0:32775->5000/tcp    backstabbing_hodgkin

 

curl 127.0.0.1:32773

Hello world!

 

通过docker logs可以查看容器内消息

docker logs determined_carson

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

172.18.0.1 - - [24/Oct/2017 08:42:12] "GET / HTTP/1.1" 200 -

 

映射所有接口地址的端口

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

#-p参数可多次使用

 

映射指定地址指定端口

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

 

映射UDP端口

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

ss -ntlu | grep "5000"

udp    UNCONN     0      0      127.0.0.1:5000                  *:*

 

容器互联

容器的连接(linking) 系统是除了端口映射外,另一种跟容器中应用交互的方式。

该系统会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信

息。

容器连接根据容器的名称来执行

 

创建db容器

docker run -d --name db training/postgres

创建web容器并连接db容器

docker run -d -P --name web --link db:db training/webapp python app.py

通过查看环境变量来查看容器公开连接信息

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

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

HOSTNAME=d6fc554fd0d4

DB_PORT=tcp://172.18.0.2:5432

DB_PORT_5432_TCP=tcp://172.18.0.2:5432

DB_PORT_5432_TCP_ADDR=172.18.0.2

DB_PORT_5432_TCP_PORT=5432

DB_PORT_5432_TCP_PROTO=tcp

DB_NAME=/web2/db

DB_ENV_PG_VERSION=9.3

HOME=/root

DB_ 开头的环境变量是供 web 容器连接 db 容器使用,前缀采用大写的连接
别名。

通过查看hosts文件查看容器公开连接信息

docker run -it --rm --link db:db training/webapp /bin/bash

[email protected]:/opt/webapp# cat /etc/hosts

127.0.0.1 localhost

 

172.18.0.2 db 5ca8502421a5

172.18.0.4 7c6c61eaa74b

[email protected]:/opt/webapp# ping db

PING db (172.18.0.2) 56(84) bytes of data.

64 bytes from db (172.18.0.2): icmp_seq=1 ttl=64 time=0.083 ms

以上是关于docker-5.网络的主要内容,如果未能解决你的问题,请参考以下文章

Docker(5)——垃圾清理

docker-5 docker仓库

Docker-5-Docker运行自己的镜像

linux安装docker

linux安装docker

linux安装docker