docker 进阶操作

2020-04-10  本文已影响0人  _来者可是诸葛孔明_
数据管理
#创建一个数据卷
$ docker volume create [数据卷名]
#查询所有数据卷
$ docker volume ls
#查询数据卷信息
$ docker volume inspect my-vol
#启动一个挂载数据卷的容器
$ docker run -d -P --name web \
  --mount source=my-vol,target=/webapp  training/webapp  python app.py
#删除数据卷
$ docker volume rm my-vol
#清理无主数据卷
$ docker volume prune
---------------------------------------------------------------------
#挂载主机目录作为数据卷
$ docker run -d -P  --name web \ 
   --mount type=bind,source=/src/webapp,target=/opt/webapp \
   training/webapp  python app.py
使用网络
#外部访问容器 通过 -P (随机)或 -p 参数来指定端口映射 -p 标记可以多次使用来绑定多个端口
$ docker run -d -P training/webapp python app.py
#映射所有接口地址 此时默认会绑定本地所有接口上的所有地址
$ 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 标记来指定 udp 端口
$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
#查看映射端口配置
$ docker port nostalgic_morse 5000
容器互联
#新建网络  -d 参数指定 Docker 网络类型,有 bridge overlay
$ docker network create -d bridge my-net
#连接容器
$ docker run -it --rm --name busybox1 --network my-net busybox sh
配置 DNS
#容器中使用 mount 命令可以看到挂载信息
$ mount
#配置全部容器的 DNS ,可以在 /etc/docker/daemon.json 文件中增加以下内容来设置。
{
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}
#手动指定容器的配置,可以在使用 docker run 命令启动容器时加入如下参数:
-h HOSTNAME或者 --hostname=HOSTNAME 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。但它在容器外部看不到,既不会在 docker container ls 中显示,也不会在其他的容器的 /etc/hosts 看到。

--dns=IP_ADDRESS 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。

--dns-search=DOMAIN 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。
上一篇下一篇

猜你喜欢

热点阅读