Docker常用命令速记

一、镜像

1.1 获取镜像

docker pull user/repo:tag

1.2 查看镜像信息

查看所有镜像信息
docker images
docker image ls

为本地镜像添加新的标签,注意这样不同tag的镜像ID是一样的
docker tag user/repo:old_tag repo/new_tag

查看镜像的详细信息
docker inspect image_id

1.3 搜寻镜像

docker search image_name

1.4 删除镜像

注意:需要先删除该镜像生成的所有容器,才能删除镜像

删除所有指向该镜像的标签,然后删除该镜像文件本身
docker rmi image_id
docker image rm image_id

删除多个镜像
docker rmi <your-image-id> <your-image-id> ...

镜像只有一个标签就会删除镜像,否则删除标签
docker rmi user/repo:tag

在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:
docker image prune -a

1.5 生成镜像

保存容器为镜像
docker commit -m "message" container_id user/repo:tag

本地文件导入镜像
cat file_name | docker import - user/repo:tag

1.6 保存和载入镜像

保存镜像到当前目录
docker save -o filename.tar image_id 注意文件名的后缀是.tar
docker save -o filename.tar user/repo:tag 注意文件名的后缀是.tar

保存镜像到指定目录
docker save image_id > /path/image_file_name.tar

载入镜像
docker load -i filename.tar

1.7 上传镜像到仓库

docker push user/repo:tag 第一次使用时会提示输入登陆信息,账号与密码

二、容器

2.1 创建容器

新建的容器处于停止状态
docker create -it user/repo:tag

启动一个停止的容器
docker start container_id

创建并启动一个容器,允许用户通过bash进行交互
docker run -it user/repo:tag /bin/bash
-i: 交互式操作
-t: 终端

创建并启动一个容器,容器在后台运行
docker run -d user/repo:tag /bin/bash

查看本机存在的所有容器,去掉-a,仅查看活动的容器
docker ps -a
docker container ls -a

查看容器输出信息
docker logs container_id

重命名容器
docker rename old_name new_name

2.2 终止容器

等待10s后终止容器
docker stop container_id
docker container stop container_id

立刻退出容器
docker kill container_id
在容器中输入命令exit,立刻退出

在容器中ctrl+d,立刻退出

查看终止状态的容器ID
docker ps -a -q

启动处于终止状态的容器
docker start container_id

让处于运行状态的容器终止,然后再启动它
docker restart container_id

2.3 进入容器

多个窗口会同步显示容器内容,一个窗口阻塞后,其它窗口也无法操作
docker attach container_id

另开一个终端进入容器
docker exec -it container_id /bin/bash

2.4 删除容器

删除处于终止状态的容器
docker rm container_id
docker container rm container_id
-f :终止运行的容器,并删除容器
-v :删除容器挂载的数据卷

删除所有已停止的容器
docker container prune

2.5 导出容器

与镜像导出的区别在于,舍弃了中间层,仅保存当前快照,体积较小。

不管是否处于运行状态,都可导出
docker export -o file_name.tar container_id

导入容器
docker import file_name user/repo:tag

导入容器后,形成一个新的镜像为user/repo:tag,再根据镜像实例化命令创建一个新的容器即可。

三、数据卷

3.1 数据卷

在容器内创建数据卷,容器/目录下会多一个dbdata目录,/dbdata,与/root类似
docke run -it -v /dbdata ubuntu:18.04 /bin/bash

挂载主机目录作为数据卷,目录不存在会自动创建
docker run -it -v /home/user/dir:/root/dir ros:melodic /bin/bash

查看docker卷
docker volume ls

删除docker卷
docker volume rm 4e12af8913af

删除所有未使用的卷
docker volume prune

3.2 数据卷容器

创建dbdata_container容器,并在容器中创建数据卷/dbdata
docke run -it -v /dbdata --name dbdata_container ubuntu:18.04 /bin/bash

挂载数据卷容器dbdata_container到其它容器中,如果有多个数据卷容器,作为一个list放在--volumes-from后面在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:
docker image prune -a
docker run -it --volumes-from dbdata_container ros:melodic /bin/bash

删除数据卷容器,删除了挂载的容器(包括dbdata_container),数据卷并不会被自动删除,必须删除最后一个挂载它的容器时,显式调用-v参数
docker rm -v dbdata_container container_id

四、网络

Docker 包括三个基本概念:
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 客户端(Client):Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。
Docker 主机(Host):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

docker system是用于管理磁盘空间的命令,docker system df,类似于df命令,专门用来查看docker的磁盘使用情况。

docker cp
1 从容器拷贝文件到宿主机
例如,将容器mycontainer中路径:/opt/testnew/下的文件file.txt拷贝到宿主机:/opt/test/路径下

拷贝方式为:docker cp 容器名:容器中要拷贝的文件名及其路径 要拷贝到宿主机里面对应的路径

在宿主机中执行命令如下:
docker cp mycontainer:/opt/testnew/file.txt /opt/test/

2 从宿主机拷贝文件到容器
例如,将宿主机中路径:/opt/test/下的文件:file.txt拷贝到容器:mycontainer的:/opt/testnew/路径下

拷贝方式为:docker cp 宿主机中要拷贝的文件名及其路径 容器名:要拷贝到容器里面对应的路径

同样还是在宿主机中执行命令如下:

docker cp /opt/test/file.txt mycontainer:/opt/testnew/

注意:不管容器有没有启动,拷贝命令都会生效

docker copy复制的时候容器中地址不能用~,得用/绝对地址,用pwd查看路径。使用-a命令进行

docker diff

Docker 容器内部获取自身容器 id 方法

进入容器
cat /proc/self/cgroup | head -1
输出:
12:cpuset:/docker/9440dd89c4052167611e467efd47e1feccabaad448594cbc90eb7fb3f12f4c3f
可以看出后面的 944 开头的就是容器自身的id。

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

推荐阅读更多精彩内容