Docker命令使用

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" "-"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,458评论 0 120
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,370评论 0 27
  • 容器生命周期管理 docker run :创建一个新的容器并运行一个容器 docker run [OPTIONS]...
    MoRenYaoJing阅读 298评论 0 0
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 3,831评论 2 49
  • 前些时日,朋友生活事业不得志,跟我聊了很多他那些不如意的事情。那次聊了很久很久,大概有五个多小时。当时只是静静地听...
    茶杯旁的猫阅读 4,430评论 2 18