一、外部访问容器
可以通过-P或-p参数指定端口映射,来让外部也可以访问容器里的应用。
1、使用-P参数时,Docker会随机一个49000 - 49900的端口到内部容器开放的网络端口
docker run -d -P training/webapp python app.py2、使用-p <HostPort>:<ContainerPort>格式将本地端口映射到容器的端口:
docker run -d -p 5000:5000 training/webapp python app.py3、使用-p <IP>:<HostPort>:<ContainerPort>格式指定映射使用一个特定地址:
docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py4、使用-p <IP>::<ContainerPort>绑定localhost的任意端口到容器的指定端口上,本地主机会自动分配一个端口:
docker run -d -p 127.0.0.1::5000 training/webapp python app.py5、使用udp指定udp端口
docker run -d -p 127.0.0.1:5000:5000/udp trainging/webapp python app.py6、可以使用docker port来查看映射端口配置
docker port <Container> <ContainerPort>7、可以使用-p来绑定多个端口
docker run -d -p 5000:5000 -p 5001:5001 training/webapp python app.py8、可以使用docker inspect获取容器内部变量
docker inspet -f "{{ .State.Pid }}" <Container>9、可以使用--rm来标记容器,标记的容器在终止后会立即删除,--rm和-d不能同时使用
docker run -rm -p 5000:5000 training/webapp python app.py二、容器互联
可以使用--link参数让容器之间安全的进行交互
1、先创建一个数据库容器
docker run -d --name db training/postgres2、删除之前创建的web容器
docker rm -f web3、创建一个新的web容器,并将它连接到db容器
docker run -d -P --name web --link db:db training/webapp python app.py 其中,--link的参数格式为:--link name:alias,name代表要链接的容器的名称,alias是这个连接的别名。
4、Docker通过两种方式为容器公开连接信息
- 环境变量
- 更新
/etc/hosts文件
可以使用env命令来查看web容器的环境变量
docker run --rm --name web2 --link db:db training/webapp env 也可以查看/etc/hosts文件
docker run -t -i --rm --link db:db training/webapp /bin/bash
cat /etc/hosts