外部访问
随机映射端口
使用 -P 标记,Docker会随机映射一个49000-49900的端口到内部容器开放的网络端口
docker run -d -P training/webapp python app.py
docker ps -l # 显示最近创建的容器
docker logs -f web # 查看应用的信息映射所有接口地址
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 training/webapp python app.py指定udp端口
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py查看映射端口配置
dokcer port web 5000新建一个docker网络
docker network create -d bridge my-net运行容器连接到新建的my-net网络
docker run -it --rm --name busybox1 --network my-net busybox sh
docker run -it --rm --name busybox2 --network my-net busybox sh查看容器信息
docker container ls
容器内ping测试容器是否互联多个容器互联 推荐Docker Compose
配置DNS 宿主机DNS信息更新后,所有Docker容器的DNS配置通过/etc/resolv.conf立即更新
配置全部容器的DNS
vim /etc/docker/daemon.json 增加内容{
'dns':[
"114.114.114.114",
"8.8.8.8"
]}
docker run -it --rm ubuntu:17.10 cat /etc/resolv.conf
容器互联
容器的连接系统是除了端口映射外另一种可以与容器中应用进行交互的方式。
它会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。
自定义容器名
连接系统根据容器的名称执行,所以需要自定义一个较为简单容易区分的容器名。
自定义命名使用–name参数,这个在之前的文章中已经遇到过了:
docker run -d -p --name db mysql容器的命名必须是唯一的。
执行docker run时,如果加上–rm参数,容器在终止后悔立即被删除,但是不能与-d参数一同使用。
容器互联
使用–link参数可以让容器间建立安全的连接进行交互。
下面是一个示例:
首先创建一个数据库的容器:










