命令
命令 | 解释 |
---|---|
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 内存占有情况 |
容器连接
网络端口映射
容器中运行的应用,可通过-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
全局配置
在/etc/docker/daemon.json 文件中增加以下内容来设置全部容器的 DNS
{
"dns" : [
"114.114.114.114",
"8.8.8.8"
]
}
重启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。