命令

命令 解释
docker 查看到 Docker 客户端的所有命令选项
docker command —help 详细解释 eg: docker status —help
docker pull ubuntu 获取镜像
docker ps 查看正在运行的容器
docker ps -a 查看所有的容器 a—>all
docker ps -l 查询最后一次创建的容器 l—>last
docker run -it ubuntu /bin/bash 启动容器
docker run -itd —name ubuntu-test ubuntu /bin/bash 后台运行一个容器
docker start <容器id> 启动一个已停止的容器
docker attach <容器id> 进入容器
docker exec -it <容器id> /bin/bash 进入容器,推荐,退出容器不会导致容器的停止 exec执行/开始
# exit 在容器中 退出容器
docker stop <容器 ID> 停止一个容器
docker restart <容器 ID> 重启停止的容器
docker export 1e560fca3906 > ubuntu.tar 导出容器
cat docker/ubuntu.tar | docker import - test/ubuntu:v1 导入容器
docker rm -f <容器 ID> 删除容器
docker port [容器id] 查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号
docker logs -f <容器id/名字> 查看容器内部的标准输出
docker top <容器id> 查看容器内部运行的进程
docker inspect <容器id> 查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
docker port <容器id/名称> [端口] 快捷查看容器端口绑定情况
docker run -d -P —name new_name .. 容器命名
docker container stats <容器id> 查看cpu 内存占有情况
image.png

携带命令

容器连接

网络端口映射

容器中运行的应用,可通过-p指定端口映射,让外部也可访问
docker run -d -P training/webapp python app.py 【-P随机绑定端口】
docker run -d -p 5000:5000 training/webapp python app.py 【-p指定绑定端口】
docker run -d -p 5000:5000/udp training/webapp python app.py 【上述绑定tcp端口,/udp绑定udp端口】
-P 内部端口随机映射主机大端口 -p指定主机端口

指定容器绑定的网络地址 比如127.0.0.1,这样可以访问127.0.0.1:5001访问容器5000端口
docker run -d -p 127.0.0.1:2001:5000 training/webapp python app.py

docker port <容器id> 5000 快捷查看端口绑定情况

端口映射并不是唯一把docker连接到另一个容器的方法。
docker有一个连接系统允许将多个容器连接在一起,共享连接信息。
docker连接会创建一个父子关系,其中父容器可以看到子容器信息。

容器命名

docker run -d -P —name runoob tarining/webapp python app.py

新建网络

docker network create -d bridge test-net 【创建一个新的docker网络 -d:指定docker网络类型 bridge/overlay】
docker network ls 【显示docker网络列表】

连接容器

运行2个容器,并加入到test-net网络
docker run -itd —name test1 —network test-net ubuntu /bin/bash
docker run -itd —name test2 —network test-net ubuntu /bin/bash

docker network connect test-net 容器id

进入容器 ping另一个容器
docker exec -it test1 /bin/bash
ping test2

如果ping不通可更新
apt-get update
apt install iputils-ping

配置DNS

  • 全局配置

    1. 在/etc/docker/daemon.json 文件中增加以下内容来设置全部容器的 DNS
    1. {
    2. "dns" : [
    3. "114.114.114.114",
    4. "8.8.8.8"
    5. ]
    6. }

    重启docker: /etc/init.d/docker restart
    查看容器dns是否生效: docker run -it —rm ubuntu cat etc/resolv.conf

  • 手动指定

    docker run -it —rm host_ubuntu —dns=114.114.114.114 —dns-search=test.com ubuntu
    参数说明:
    —rm: 容器退出时自动清理容器内部文件系统
    -h HOSTNAME 或者 —hostname=HOSTNAME: 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。
    —dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。
    —dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。