共计 7889 个字符,预计需要花费 20 分钟才能阅读完成。
Docker 命令分类
容器生命周期管理
- docker run
- docker start/stop/restart
- docker kill
- docker rm
- docker pause/unpause
- docker create
- docker exec
容器操作
- docker ps
- docker inspect
- docker top
- docker attach
- docker events
- docker logs
- docker wait
- docker export
- docker port
容器 rootfs 命令
- docker commit
- docker cp
- docker diff
镜像仓库
- docker login
- docker pull
- docker push
- docker search
本地镜像管理
- docker images
- docker rmi
- docker tag
- docker build
- docker history
- docker save
- docker import
版本信息
- docker version
- docker info
Dock 命令使用
1. docker version
说明:显示 Docker 版本信息。
2. docker info
说明:显示 Docker 系统信息,包括镜像和容器数。
3. docker search
用法:docker search [options “o”>] term
说明:从 Docker Hub 中搜索符合条件的镜像。
options:
- –automated 只列出 automated build 类型的镜像;
- –no-trunc 可显示完整的镜像描述;
- -s 40 列出收藏数不小于 40 的镜像。
示例:
docker search -s 1000 django
4. docker pull
用法:docker pull [-a “o”>] [user/ “o”>]name[:tag “o”>]
说明: 从 Docker Hub 中拉取或者更新指定镜像。
options:
- -a 拉取所有 tag 镜像
示例:
docker pull laozhu/telescope:latest
5. docker login
root@moon:~# docker login
Username: username
Password: ****
Email: user@domain.com
Login Succeeded
按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。
6. docker logout
说明:运行后从指定服务器登出,默认为官方服务器。
7. docker images
用法:docker images [options “o”>] [name]
说明:列出本地所有镜像。其中 [name] 对镜像名称进行关键词查询。
options:
- -a 列出所有镜像(含过程镜像);
- -f 过滤镜像,如:-f [‘dangling=true’] 只列出满足
dangling=true 条件的镜像;- –no-trunc 可显示完整的镜像 ID;
- -q 仅列出镜像 ID。
- –tree 以树状结构列出镜像的所有提交历史。
8. docker ps
说明:列出所有运行中容器。
options:
- -a 列出所有容器(含沉睡镜像);
- –before=”nginx” 列出在某一容器之前创建的容器,接受容器名称和 ID 作为参数;
- –since=”nginx” 列出在某一容器之后创建的容器,接受容器名称和 ID 作为参数;
- -f [exited=<int>] 列出满足 exited=<int> 条件的容器;
- -l 仅列出最新创建的一个容器;
- –no-trunc 显示完整的容器 ID;
- -n=4 列出最近创建的 4 个容器;
- -q 仅列出容器 ID;
- -s 显示容器大小。
9. docker rmi
用法:docker rmi [options “o”>] <image> “o”>[image…]
说明:从本地移除一个或多个指定的镜像。
options:
- -f 强行移除该镜像,即使其正被使用;
- –no-prune 不移除该镜像的过程镜像,默认移除。
示例:
docker rmi nginx:latest postgres:latest Python:latest
10. docker rm
用法:docker rm [options “o”>] <container> “o”>[container…]
options:
- -f 强行移除该容器,即使其正在运行;
- -l 移除容器间的网络连接,而非容器本身;
- -v 移除与容器关联的空间。
示例:
docker rm nginx-01 nginx-02 db-01 db-02
sudo docker rm -l /webapp/redis
11. docker history
用法:docker history “o”>[options] <image>
说明:查看指定镜像的创建历史。
options:
- –no-trunc 显示完整的提交记录;
- -q 仅列出提交记录 ID。
12. docker start|stop|restart
用法:docker start|stop “p”>|restart [options “o”>] <container> “o”>[container…]
说明:启动、停止和重启一个或多个指定容器。
options:
- -a 待完成
- -i 启动一个容器并进入交互模式;
- -t 10 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。
示例:
# 启动已被停止的容器 myrunoob
docker start myrunoob
# 停止运行中的容器 myrunoob
docker stop myrunoob
# 重启容器 myrunoob
docker restart myrunoob
13. docker kill
用法:docker kill “o”>[options “o”>] <container> “o”>[container…]
说明:杀死一个或多个指定容器进程。
options:
- -s “KILL” 自定义发送至容器的信号。
示例:
# 杀掉运行中的容器 mynginx
runoob@runoob:~$ docker kill -s KILL mynginx
mynginx
14. docker events
用法: docker events [options “o”>]
说明: 从服务器拉取个人动态,可选择时间区间。
示例:
docker events --since= "s2">"20141020"
docker events --until= "s2">"20120310"
15. docker save
说明: 将指定镜像保存成 tar 归档文件,docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
options:
- -o 镜像归档 指定保存的镜像归档。
示例:
docker save -o "debian.tar"
docker save > "debian.tar"
16. docker load
用法: docker load [options]
说明: 从 tar 镜像归档中载入镜像,docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
options:
- -i 镜像归档 指定载入的镜像归档。
示例:
docker load < debian.tar
docker load -i "debian.tar"
17. docker export
用法: docker export <container>
说明: 将指定的容器保存成 tar 归档文件,docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。
示例:
docker export nginx-01 > export.tar
18. docker import
用法: docker import url|- “o”>[repository[:tag “o”>]]
说明: 从归档文件(支持远程文件)创建一个镜像,export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。
示例:
cat export.tar "p">| docker import - imported-nginx:latest
docker import http://example.com/export.tar
19. docker top
用法: docker top <running_container> “o”>[ps options]
说明:查看一个正在运行容器进程,支持 ps 命令参数。
20. docker inspect
说明: 检查镜像或者容器的参数,默认返回 JSON 格式。
options:
- -f 指定返回值的模板文件。
示例:
docker instpect nginx:latest
docker inspect nginx-container
21. docker pause
说明: 暂停某一容器的所有进程。
22. docker unpause
用法: docker unpause <container>
说明: 恢复某一容器的所有进程。
23. docker tag
用法: docker tag [options “o”>] <image>[:tag “o”>] [repository/ “o”>][username/]name “o”>[:tag]
说明: 标记本地镜像,将其归入某一仓库。
options:
- -f 覆盖已有标记。
24. docker push
用法: docker push name[:tag “o”>]
说明: 将镜像推送至远程仓库,默认为 Docker Hub
示例:
docker push laozhu/nginx:latest
25. docker logs
用法: docker logs [options “o”>] <container>
说明: 获取容器运行时的输出日志。
options:
- -f 跟踪容器日志的最近更新;
- -t 显示容器日志的时间戳;
- –tail=”10″ 仅列出最新 10 条容器日志。
示例:
docker logs -f -t --tail= "s2">"10" insane_babbage
26. docker run
用法: docker run [options “o”>] <image> [“nb”>command] “o”>[arg…]
说明: 启动一个容器,在其中运行指定命令。
options:
- -a stdin 指定标准输入输出内容类型,可选 STDIN/
STDOUT / STDERR 三项;- -d 后台运行容器,并返回容器 ID;
- –dns 8.8.8.8 指定容器使用的 DNS 服务器,默认和宿主一致;
- –dns-search example.com 指定容器 DNS 搜索域名,默认和宿主一致;
- -i 以交互模式运行容器,通常与 -t 同时使用;
- -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -h “mars” 指定容器的 hostname;
- -e username=”ritchie” 设置环境变量;
- –expose=[] 待完成
- –env-file=[] 从指定文件读入环境变量;
- -c, –cpu-shares CPU 共享设置(相对权重)
- –cpuset=”0-2″ or –cpuset=”0,1,2″ 绑定容器到指定 CPU 运行
- -m, –memory 内存限制
- –name=”nginx-lb” 为容器指定一个名称;
- –net=”bridge” 指定容器的网络连接类型,支持 bridge /
host / none- container:<name|id> 四种类型;
- -l, –label=[] 在容器中设置元数据
- –link=[] 添加链接至另一个容器
- -w, –workdir= 设置容器内的工作目录
示例:
# 使用 docker 镜像 nginx:latest 以后台模式启动一个容器, 并将容器命名为 mynginx
docker run --name mynginx -d nginx:latest
# 使用镜像 nginx:latest 以后台模式启动一个容器, 并将容器的 80 端口映射到主机随机端口。docker run -P -d nginx:latest
# 使用镜像 nginx:latest 以后台模式启动一个容器, 将容器的 80 端口映射到主机的 80 端口, 主机的目录 /data 映射到容器的 /data。docker run -p 80:80 -v /data:/data -d nginx:latest
#使用镜像 nginx:latest 以交互模式启动一个容器, 在容器内执行 /bin/bash 命令。root@localhost:~# docker run -it nginx:latest /bin/bash
root@b8573233d675:/#
27. docker create
用法: docker create [OPTIONS] IMAGE [COMMAND] [ARG…]
说明: 创建一个新的容器但不启动它
示例:
# 使用 docker 镜像 nginx:latest 创建一个容器, 并将容器命名为 myrunoob
root@localhost:~# docker create --name myrunoob nginx:latest
09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f
28. docker exec
用法: docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
说明: 在运行的容器中执行命令
options:
- -d : 分离模式: 在后台运行
- -i : 即使没有附加也保持 STDIN 打开
- -t : 分配一个伪终端
示例:
# 在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本
root@localhost:~# docker exec -it mynginx /bin/sh /root/runoob.sh
http://www.runoob.com/
在容器 mynginx 中开启一个交互模式的终端
root@localhost:~# docker exec -i -t mynginx /bin/bash
root@b1a0703e41e7:/#
29. docker commit
用法: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
说明: 从容器创建一个新的镜像
options:
- -a : 提交的镜像作者;
- -c : 使用 Dockerfile 指令来创建镜像;
- -m : 提交时的说明文字;
- -p : 在 commit 时,将容器暂停。
示例:
# 将容器 a404c6c174a2 保存为新的镜像, 并添加提交人信息和说明信息。root@localhost:~# docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
root@localhost:~# docker images mymysql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 15 seconds ago 329 MB
30. docker cp
用法:
- docker cp [OPTIONS] CONTAINER: SRC_PATH DEST_PATH|-
- docker cp [OPTIONS] SRC_PATH|- CONTAINER: DEST_PATH
说明: 用于容器与主机之间的数据拷贝
options:
- -L : 保持源目标中的链接
示例:
# 将主机 /www/runoob 目录拷贝到容器 96f7f14e99ab 的 /www 目录下。docker cp /www/runoob 96f7f14e99ab:/www/
# 将主机 /www/runoob 目录拷贝到容器 96f7f14e99ab 中,目录重命名为 www。docker cp /www/runoob 96f7f14e99ab:/www
# 将容器 96f7f14e99ab 的 /www 目录拷贝到主机的 /tmp 目录中。docker cp 96f7f14e99ab:/www /tmp/
31. docker diff
用法: docker diff [OPTIONS] CONTAINER
说明: 检查容器里文件结构的更改
示例:
# 查看容器 mymysql 的文件结构更改。root@localhost:~# docker diff mymysql
A /logs
A /mysql_data
C /run
C /run/mysqld
A /run/mysqld/mysqld.pid
A /run/mysqld/mysqld.sock
C /tmp
32. docker port
用法: docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
说明: 列出指定的容器的端口映射,或者查找将 PRIVATE_PORT NAT 到面向公众的端口
示例:
# 查看容器 mynginx 的端口映射情况。root@localhost:~# docker port mymysql
3306/tcp -> 0.0.0.0:3306
33. docker attach
用法: docker attach [OPTIONS] CONTAINER
说明: 连接到正在运行中的容器, 要 attach 上去的容器必须正在运行,可以同时连接上同一个 container 来共享屏幕
示例:
# 容器 mynginx 将访问日志指到标准输出,连接到容器查看访问信息。root@localhost:~# docker attach --sig-proxy=false mynginx
192.168.239.1 - - [10/Jul/2016:16:54:26 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"
更多 Docker 相关教程见以下内容:
Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm
Ubuntu 16.04 服务器上配置使用 Docker http://www.linuxidc.com/Linux/2017-06/145176.htm
Ubuntu 15.04 下安装 Docker http://www.linuxidc.com/Linux/2015-07/120444.htm
Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm
Docker 创建基础镜像 http://www.linuxidc.com/Linux/2017-05/144112.htm
在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm
Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm
使用 Docker 分分钟启动常用应用 http://www.linuxidc.com/Linux/2017-04/142649.htm
Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法 http://www.linuxidc.com/Linux/2017-05/143862.htm
Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148372.htm