docker基本命令详解

  • attach: 将标准输入(stdin)与标准输出(stdout)连接到正在运行的容器
docker attach [OPTIONS] CONTAINER
# 创建容器
docker create -it --name centos-container centos /bin/bash
# 若想使用刚刚创建的容器,则必须使用docker start 命令启动容器
docker start centos-container
# 进入容器内部
docker attach centos-container
  • build: 使用Dockerfile文件创建镜像
docker build <选项><Dockerfile路径>
  • commit: 从容器的修改项创建显得镜像
docker commit <选项><容器名称,id>/<镜像名称>:<标签>
  • cp: 用于将容器的目录或文件复制的到主机。若将cp命令中的路径设置为目录,则将该目录下的所有内容复制到主机
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
# 将容器内的整个/etc 目录复制到主机当前文件夹下
docker cp centos-container:/etc /home/long
  • create: 使用指定的镜像创建容器。与run命令不同,使用create命令只能创建容器而并不启动
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

# 创建容器
docker create -it --name centos-container centos /bin/bash
# 若想使用刚刚创建的容器,则必须使用docker start 命令启动容器
docker start centos-container
# 进入容器内部
docker attach centos-container
# 退出容器
exit
# 停止容器
docker stop centos-container
  • diff: 检查容器文件系统的修改(查看修改内容)
docker diff <容器名称,id>
# 示例
[root@localhost /home/long]# docker diff centos-container
C /run
A /run/secrets
C /root
A /root/.bash_history
  • events: 实时输出Docker服务器中发生的事件
docker events
另一终端,运行容器
docker start centos-container
此端输出
2018-04-26T19:16:35.017678507-07:00 network connect b2376bcc00f587966645b362992289aa78ea58080ea6713a9a418b5f82e64c48 (container=24d1711909362e7620f9c76f266a671f1a7336452e88ff32c4942a4768801d79, name=bridge, type=bridge)
2018-04-26T19:16:35.622752724-07:00 container start 24d1711909362e7620f9c76f266a671f1a7336452e88ff32c4942a4768801d79 (build-date=20170911, image=centos, license=GPLv2, name=centos-container, vendor=CentOS)
  • exec: 用于从外部运行容器内部的命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# 执行
docker exec -it hello /bin/bash
ps -ef
  • export: 将容器的文件系统导出为tar文件包
docker export <容器名称,id>
# 示例
docker export centos-container > centos-container.tar
  • history: 显示镜像的历史。此处的历史依据Dockerfile文件中的设置创建。
docker history <选项><镜像名称,id>
# 示例
[root@localhost /home/long]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
[root@localhost /home/long]# docker history tomcat
  • images: 查看所有镜像
[root@localhost /home/long]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
  • import: 从压缩为tar文件(.tar .tar.gz .tgz .bzip .tar.xz .txz)的文件系统创建镜像
docker import <tar文件的URL或者 - ><注册名称>/<镜像名称>:<标签>
docker import centos-container.tar centos-container-2
cat centos-container | docker import - centos-container-2
  • info: 显示当前系统信息、docker容器、镜像个数、设置等信息
docker info
  • inspect: 获得更详细的容器、镜像或者任务信息
docker inspect <选项><容器或镜像名称,id>
# 示例
docker inspect centos-container
  • kill: 向容器发送KILL信号,从而关闭容器(推荐使用更优雅温和的 docker stop 命令)
docker kill centos-container
  • load: 从tar文件或标准输入中创建镜像
docker load <选项>
# 示例
docker load -i centos-container.tar
  • login: 登录Docker 的注册服务器,若不设置注册服务器的地址,则默认登录dockerhub
docker login <选项><Docker 注册服务器的URL>
-e、--email="" 设置登录时使用的电子邮件
-p、--password="" 设置登录密码
-u、--username="" 设置登录时使用的账号
  • logout: 从Docker注册服务器中登出
docker logout <选项><Docker 注册服务器的URL>
  • logs: 获取容器日志
docker logs <容器名称,id>
# 示例
docker logs centos-container
  • network: 管理docker的网络系统
docker network COMMAND
# 示例
docker network ls
  • node: 管理docker的swarm集群节点
docker node ls
  • pause: 暂停容器中所有的进程(可以是多个容器)
docker pause <容器名称,id>
# 示例
docker pause centos-container
# 恢复
docker unpause centos-container
  • port: 查看容器的某个端口是否处于开放状态
docker port <容器名称,id><端口>
# 示例
docker port centos-container 8090
  • ps: 查看容器列表
docker ps <选项>
-a、--all=false 列出所有容器。不带 -a 只输出在运行的容器
--before="" 列出特定容器创建前的容器,包含停止的容器。
-f、--filter=[] 设置输出过滤。如 "exited=0"
-l、--latest=false 列出最后创建的容器,包含停止的容器
-q、--quiet=false 只输出容器的id
# 示例
docker ps -a
  • pull: 从一个远程仓库拉取镜像
docker pull <选项> <镜像名>:<标签>
# 示例
docker pull nginx:latest
  • push: 将镜像推送到Docker注册服务器或者指定仓库
docker push <注册名>/<镜像名>:<标签>
docker pull 192.168.1.150:10000/centos-container:latest
  • rename: 修改某一个容器名字
docker rename  <容器名> <新容器名>
# 示例
 docker rename centos-container centos
  • restart: 重启容器
docker restart <容器名称,id>
docker restart centos-container
  • rm: 删除容器
docker rm <容器名称,id>
# 示例
docker ps -a
docker rm hello
docker ps -a
  • rmi: 删除镜像, 若不指定标签,则删除latest标签
docker rmi <注册名称>/<镜像名称,id>:<标签>
# 示例
docker images
docker nginx
docker images
  • run: 使用命令行指定镜像创建容器
docker run <选项><镜像名称,id><命令><参数>
# 示例
docker ps -a
docker run --name hello -i -t centos /bin/bash
docker ps -a
  • save: 将镜像保存为tar包文件
docker save <选项><镜像名称>:<标签>
# 示例
[root@localhost /home/long]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              33e02377a00f        2 weeks ago         553.8 MB
docker.io/nginx     latest              b175e7467d66        2 weeks ago         108.9 MB
docker.io/centos    latest              196e0ce0c9fb        7 months ago        196.6 MB
[root@localhost /home/long]# docker save nginx -o nginx.tar
[root@localhost /home/long]# ll
total 110028
drwxr-xr-x. 2 long long         6 Sep 28  2017 Desktop
drwxr-xr-x. 2 long long         6 Sep 28  2017 Documents
drwxr-xr-x. 2 long long         6 Sep 28  2017 Downloads
drwxr-xr-x. 2 long long         6 Sep 28  2017 Music
-rw-------. 1 root root 112667648 Apr 26 22:46 nginx.tar #生成了新的文件
drwxr-xr-x. 2 long long         6 Sep 28  2017 Pictures
drwxr-xr-x. 2 long long         6 Sep 28  2017 Public
drwxr-xr-x. 2 long long        61 Oct 17  2017 samba
drwxr-xr-x. 2 long long         6 Sep 28  2017 Templates
drwxr-xr-x. 2 long long         6 Sep 28  2017 Videos
[root@localhost /home/long]# 


  • search: 根据名字在docker hub搜索你要的镜像
docker search <选项><搜索词>
--automated=false 只显示由docker hub 的automated build 创建的镜像
--no-trunc=false 显示所有因因为内容过长而省略的部分
-s、--stars=0 显示滴啊有特定星级以上的镜像
# 示例
docker search nginx
  • service: 管理docker服务
docker service [COMMAND]
docker service ls #主要用于swarm集群
  • start: 启动一个或多个容器
docker start <选项><容器名称,id>
# 示例
docker start centos-container
  • stats: 显示一个容器的使用资源情况,包括cpu,内存,硬盘等
docker stats <选项><容器名称,id>
# 示例
docker stats centos-container
  • stop: 停止容器
docker stop<选项><容器或镜像名称,id>
# 示例
docker stop centos-container
  • swarm: 管理Docker Swarm集群
docker swarm [COMMAND]
# 初始化一个swarm集群
docker swarm init 
  • tag: 标记本地镜像,将其归入某一仓库
docker tag <选项><镜像名称>:<标签><注册地址,用户名>/<镜像名称>:<标签>
#示例
docker tag nginx:latest youset:6666/nginx:0.1
  • top: 显示容器中正在运行的进程信息
docker top <容器名称,id><ps选项>
#示例
docker top centos-container
  • unpause: 停止容器内的所有进程
docker unpause <容器名称,id>
#示例
docker unpause centos-container
  • update: 动态地更新容器配置。可以使用这个命令限制容器在docker主机上使用太多的资源
docker update <容器名称,id>
#示例
doucker update centos-container
  • version: 展示docker版本信息
[root@localhost /home/long]# docker version
Client:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
 Go version:      go1.8.3
 Git commit:      c4618fb/1.12.6
 Built:           Thu Sep 21 22:33:52 2017
 OS/Arch:         linux/amd64

Server:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
 Go version:      go1.8.3
 Git commit:      c4618fb/1.12.6
 Built:           Thu Sep 21 22:33:52 2017
 OS/Arch:         linux/amd64

  • volume: 管理docker数据卷
docker volume [COMMAND]
# 示例
docker volume ls
  • wait: 等待容器终止,然后输出 Exit Code
docker wait <容器名称,id>
# 示例
docker wait centos-container

以上就是docker的主要命令,包括docker swarm集群的一些命令,除此之外还有一些其他的命令,如下:

--api-enable-cors=false 使用API时,启用CORS(cross-origin resource sharing)

-b 、--bridge="" 使用事先创建的网桥接口。若设置为none,则不在容器内使用网络

--bip="" 使用CIDR标记法设置docker 的IP带宽。该选项不能与-b选项同时使用

如:`-bip="192.168.0.0/24"`
-D 、--debug 启用调试模式

-d 、--deamon=false 以守护进程模式运行

--dns 设置docker要使用的DNS服务器

--dns-search=[] 设置docker要使用的DNS搜索域。若设置为:example.com,则向服务器查询hello时,将首先查找hello.example.com

-e、--exec-drive="native" 设置docker运行驱动,可设置为Native与lxc

--fixed-cidr="" 固定分配IPv4地址的带宽。该IP地址必须在-b选项设置的网桥网络或--bip设置的IP网段内

-G、--group="docker" 以守护进程模式运行时,使用-H选项创建Unix套接字后,设置该Unix套接字所在的组。使用""空字符串表示不设置分组

-g、 --graph="/var/lib/docker" 设置docker使用目录的顶层路径

-H、--host[] 以守护进程模式运行时,设置套接字路径。

--icc=true 开启容器间通信

--insecure-registry=[] 使用私有证书搭建docker注册服务器时,设置docker注册服务器域名

--ip=0.0.0.0 使用docker run 命令时-p选项将端口暴露在外时,设置要绑定的默认IP地址

--ip-forward=true 开启net.ipv4.ip_forward

--ip-masq=true 为网桥上的IP地址开启IP伪装(masquerading)

--iptables=true 开启iptables规则

--mtu=0 设置容器的网络最大传输单元(MTU, Maxmum transmission unit)若不设置,则使用路由器的默认MTU或者设置为1500

-p、--pidfile="/var/run/docker.pid" 设置PID文件路径

-registry-mirror=[] 设置docker registry 的镜像地址

-s、--storage-driver=[] 设置储存驱动,默认为auto,也可以设置为drivcemapper

--selinux-enabled=false开启SELinux SELinux尚不支持BTRFS储存驱动

--storage-opt 设置存储驱动选项

--tls=false 使用TLS

--tlscacert="/home/exapmleuser/.docker/ca.pem" 设置要在远程证书中使用的CA证书文件的路径

--tlscert="/home/exapmleuser/.docker/cert.pem" 设置证书文件路径

--tlskey="/home/exapmleuser/.docker/key.pem" 设置密匙文件路径

tlsverify="false" 使用TLS远程证书,守护进程与客户端全部使用证书验证

-v、--version=false 打印版本信息
docker一个很有意思的东西,如果你还在纠结于每次装完软件后,要更新软件无法删除所有的文件时,你不妨考虑一下使用docker,他让你可以快速部署,快速清除,快捷方便。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容