赞
踩
docker run –P/-p IMAGE [COMMAND] [ARG...]
options:
-P 将宿主机49000~49900端口随机映射到容器的开放端口
-p 指定宿主机和容器的端口来进行映射
实验1:
docker run -d -P --name=httpd centos/httpd-24-centos7
启动一个容httpd,这个容器的默认配置会开放一个8443端口
使用-P参数的话,会从宿主机的的49000~49900端口,随机映射到容器的8443端口,本实验中,宿主机的49161端口被映射到了容器的8443端口。
此时我们在外部网络,访问宿主机的49161端口,这个访问数据会被重写向到容器的8443端口,并且可以打开网页。
实验2:
docker run -d -p 443:8443 --name httpd1 centos/httpd-24-centos7
启动一个容httpd1,这个容器的默认配置会开放一个8443端口
使用-p参数的话,可以指定端口来进行映射,本实验中,指定宿主机的443端口映射到容器的8443端口。
这个192.168.0.197是宿主机的IP地址,443端口则被映射到了容器的8443端口。
docker run -d -p 192.168.0.197:443:172.17.0.3:8443 --name httpd1 centos/httpd-24-centos7
在端口前面加IP地址,则是指定被映射端口的IP地址。如果不加IP地址,则所有的IP的此端口都会被映射。
容器互联(linking)是一种让多个容器的应用进行交互的机制。它会在源容器和接收容器之间创建连接关系。接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。
docker run --link string [SOURCE CONTAINER] container
实验1:
step 1 创建一个新容器httpd,做为源容器
docker run -d --name=httpd centos/httpd-24-centos7
step 2 创建一个新容器centos,连接到源容器
docker run -P -it --name=centos --link httpd centos:1.0 bash
查看容器centos的环境变量
docker exec -it centos env
会发现很多HTTPD为前缀的变量,就是从源容器httpd中传送过来的。
查看容器centos的/etc/hosts文件
docker exec -it centos cat /etc/hosts
会发现也有一些是源容器httpd中传送过来的。
docker exec centos ping httpd
直接ping 容器名,发现也是可以ping通的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。