外部访问容器
1.使用 -P
标记时,Docker
会随机映射一个 490000~49900 的端口到内部容器开放的网络端口。
$ docker run -d -P --name web-nginx --mount source=my-vol,target=/webapp -it nginx
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63a459af9556 nginx "/docker-entrypoint.…" 19 minutes ago Up 19 minutes 0.0.0.0:49153->80/tcp, :::49153->80/tcp web-nginx
端口绑定
1.格式: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort
。
映射所有接口地址
$ docker run -d -p 5000:5000 training/webapp python app.py
映射到指定地址的指定端口
$ docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
查看当前端口配置
$ docker port web-nginx 5000
多个端口绑定
$ docker run -d \
-p 5000:5000 \
-p 3000:80 \
training/webapp \
python app.py
容器互联
1.创建、加入网络:
docker network create -d bridge my-net
// or
docker network create --driver=bridge --subnet=192.168.0.0/16 kd-net
// 加入网络
docker run -it --rm --name webnet1 --network my-net nginx sh
docker run -it --rm --name webnet2 --network my-net nginx sh
配置 DNS
编辑 /etc/docker/daemon.json
文件:
{
"dns": [
"114.114.114.114"
]
}
重启 service docker restart
:
$ docker run -it --rm ubuntu:18.04 cat etc/resolv.conf
search localdomain
nameserver 114.114.114.114
docker run
启动参数 -h
指定主机名:
-h HOSTNAME
[1] docker_practice
[2] 官网手册