玖叶教程网

前端编程开发入门

06-Docker 网络 - 基础

Docker 网络功能

外部访问容器
容器间互相访问

外部访问容器

运行容器时,可以使用-P或-p参数映射网络端口到容器内部
如果映射时不指定端口,则会随机分配端口 (CentOS及Ubuntu两台主机创建,分配的都是32678端口)

实例

#    运行 容器 nginx:alpine 并 随机映射端口
docker run -d -P nginx:alpine
#    显示 容器列表
docker ps -a
docker container ls -l
#    显示 容器 访问记录
docker logs {容器 ID}
docker logs a42

运行 Nginx 容器,并映射端口

使用随机分配端口 32768 访问 容器内 80 端口

显示 容器 访问记录

映射 端口

命令样例

#    -P 或 -p 参数
#    可在后方增加 /udp 参数 来指定 UDP 端口
#    映射所有接口地址
主机端口(hostPort):容器端口(containerPort)
#    映射到指定地址的指定端口
IP地址:主机端口(hostPort):容器端口(containerPort)
#    映射到指定地址的任意端口
IP地址:容器端口(containerPort)

映射所有接口地址

#    运行 nginx:alpine , -d 后台运行 -p 80:80 映射主机80端口到容器80端口
docker run -d -p 80:80 nginx:alpine

映射到指定地址的指定端口

#    运行 nginx:alpine , -d 后台运行 -p 172.16.26.126:80:80  映射主机IP 172.16.26.126的80端口到容器80端口
docker run -d -p 172.16.26.126:80:80 nginx:alpine

映射到指定地址的任意端口

#    运行 nginx:alpine , -d 后台运行 -p 172.16.26.126::80  映射主机IP 172.16.26.126的随机端口到容器80端口
docker run -d -p 172.16.26.126::80 nginx:alpine
#    使用 dup 参数 指定 dup 端口

查看端口映射配置

#    命令格式
docker port {容器ID} {端口}
#    查看端口映射配置
docker port 7676
#    查看80 端口映射配置
docker port 7676 80

查看容器配置

#    命令格式
docker inspect {容器ID}
#    查看容器配置
docker inspect 7676

使用 -P 参数 映射多个端口

#    使用-P参数,映射80 、443 两个端口 到容器
docker run -d \
    -p 80:80 \
    -p 443:443 \
    nginx:alpine

容器间互联

#    Docker 网络 类似于 虚拟化中的 虚拟交换机 或 端口组
#    Docker 网络 有 bridge 、 overlay 两种类型 , 可以使用 -d 参数来指定 Docker 网络类型
#    overlay 网络 类似于 Swarm mode

新建 容器 网络

#    命令格式
docker network create -d {网络类型} {网络名称}
#    命令样例
docker network create -d bridge my-net

连接容器 进入 网络

#    运行 容器 并连接到 my-net 网络
docker run -it --rm --name busybox1 --network my-net busybox sh
#    再次运行 一个容器 并连接到 my-net 网络
docker run -it --rm --name busybox2 --network my-net busybox sh
#    在 容器 busybox2 中,ping busybox1 测试网络连通性
ping busybox1

配置 DNS

通过 daemon.json 文件 配置 DNS

编辑 daemon.json 文件

#    编辑 daemon.json 文件 
{
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}
#    备用 完整 daemon.json 文件 
#    {
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "dns" : [
    "114.114.114.114",
    "223.5.5.5"
  ]
}
#    }

验证 DNS 配置

#    运行 容器 ubuntu:18.04 并 显示 DNS配置文件信息 etc/resolv.conf
docker run -it --rm ubuntu:18.04  cat etc/resolv.conf

使用 参数 手工指定 容器配置

#    -h HOSTNAME 或者 --hostname=HOSTNAME    :设定容器的主机名,会修改/etc/hostname 和 /etc/hosts
#    --dns=IP_ADDRESS    :设定容器的DNS,会修改/etc/resolv.conf,而不引用 /etc/docker/daemon.json
#    --dns-search=DOMAIN    :设定容器搜索域,配置后,不仅搜索 /etc/hosts 还会搜索 搜索域

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言