2.docker命令学习

1.帮助启动类命令

启动docker : systemctl start docker
停止docker : systemctl stop docker
重启docker : systemctl restart docker
查看docker状态 : systemctl status docker
开机启动 : systemctl enable docker
查看docker概要信息 : docker info
查看docker总体帮助文档 : docker --help
查看docker命令帮助文档 : docker 具体命令 --help

2.镜像命令

(1) docker images : 列举出本地主机上的镜像
    docker images -a : 列举出本地所有的镜像(含历史映像层)
    docker images -q : 只显示镜像ID
    REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
    tomcat                latest    c43980686364   7 days ago      475MB
    REPOSITORY : 表示镜像的仓库源
    TAG : 镜像的标签版本号
    IMAGE ID : 镜像ID
    CREATED : 镜像的创建时间
    SIZE : 镜像的大小
    同一仓库源可以有多个TAG版本,代表这个仓库源的不同的版本,我们使用REPOSITORY:TAG来定义不同的镜像。如果你不指定一个镜像的版本标签,例如你只使用ubuntu,docker将默认使用ubuntu:latest镜像。
(2)docker search 某个XXX镜像名字 : 搜索镜像
    docker search redis : 搜索redis镜像
    NAME                                DESCRIPTION                                     STARS       OFFICIAL   AUTOMATED
    redis                               Redis is an open source key-value store that…   12105     [OK]       
    bitnami/redis                       Bitnami Redis Docker Image                      257                  [OK]
    NAME : 镜像名称
    DESCRIPTION : 镜像说明
    STARS : 点赞数量
    OFFICIAL : 是否是官方的
    AUTOMATED : 是否是自动构建的
    docker search --limit 5 redis : 搜索点赞数量前5的redis镜像
(3)docker pull 某个XXX镜像名字 : 下载镜像
    docker pull mysql:5.6 : 下载版本号为5.6的mysql
    docker pull mysql : 下载最新版本号的mysql
(4)docker system df 查看镜像/容器/数据卷所占的空间
(5)docker rmi 某个XXX镜像名字ID : 删除镜像
    docker rmi mysql : 删除名字为mysql的镜像
    docker rmi dd3b2a5dcb48 : 删除镜像ID为dd3b2a5dcb48的镜像
    docker rmi -f mysql : 强制删除名字为mysql的镜像
    docker rmi -f $(docker images -qa) : 强制删除所有镜像

3.容器命令

(1)新建+启动容器 : docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    OPTIONS说明 : --name="容器新名字" : 为容器指定一个名称
                  -d : 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
                  -i : 以交互模式运行容器,通常与-t同时使用
                  -t : 为容器重新分配一个伪输入终端,通常与-i同时使用,也即启动交互式容器(前台有伪终端,等待交互)
                  -P : 随机端口映射,大写P
                  -p : 指定端口映射,小写p
     例如 : docker run -it centos /bin/bash
        参数说明 : -i : 交互式操作
                  -t : 终端
                  centos : centos镜像
                  /bin/bash : 放在镜像名后的是命令,这里我们是希望有个交互式shell,因此用的是/bin/bash。要退出终端,直接输入exit
(2)列出当前所有正在运行的容器 : docker ps [OPTIONS] 
    OPTIONS说明 : -a : 列出当前所有正在运行的容器 + 历史上运行过的
                 -l : 显示最近创建的容器
                 -n : 显示最近n个创建的容器
                 -q : 静默模式,只显示容器编号
(3)退出容器
    方式1 : exit -- run进去容器,exit退出,容器停止。
    方式2 : ctrl+p+q -- run进去容器,ctrl+p+q退出,容器不停止
(4)启动已停止运行的容器
    docker start 容器ID或者容器名
(5)重启容器
    docker restart 容器ID或者容器名
(6)停止容器
    docker stop 容器ID或者容器名
(7)强制停止容器
    docker kill 容器ID或者容器名
(8)删除已停止的容器
    docker rm 容器ID或者容器名 -- 只能删除已停止的容器
    docker rm -f 容器ID或者容器名 -- 强制删除容器,可以删除正在运行的容器
    一次性删除多个容器实例 : docker rm -f $(docker ps -a -q) 或者 docker ps -a -q | xargs docker rm  (慎用!!!)

4.启动守护式容器问题讲解

运行命令 docker run -d centos创建一个centos容器,然后使用命令docker ps -a进行查看,会发现容器已经退出的现象发生。发生该现象的原因是docker容器后台运行就必须要有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如top,tail),容器就会自动退出的。这个是docker的机制问题,比如web容器以nginx为例,正常情况下,配置启动服务只需要启动相应的service即可。例如service nginx start,但是这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后会立即退出,因为它觉得它没事可做了。所以,最佳的解决方案是将要运行的程序以前台进程的形式运行,常见的就是命令行模式,表示还有操作交互。

5.重要命令组合应用(案例以redis 6.0.8镜像演示)

 有镜像才能创建容器,这是根本前提。
(1)redis前后台启动演示
前台交互式启动  
    docker run -it redis:6.0.8
    启动成功后按键按下ctrl+c退出交互式进程,容器也就直接退出了,一般不建议使用前台交互式启动redis。
后台守护式启动   
    docker run -d redis:6.0.8
    建议使用后台守护式启动redis,用命令docker exec -it redis容器的ID /bin/bash进行到redis容器的内部。
    进入到redis容器内部后,使用命令 redis-cli -p 6379进行redis方式的命令交互。
(2)查看容器日志
    docker logs 容器ID
(3)查看容器内运行的进程
    docker top 容器ID
(4)查看容器内部细节 
    docker inspect 容器ID
(5)进入正在运行的容器并以命令行交互 
    方式一 : docker exec -it 容器ID /bin/bash
    方式二 : docker attach 容器ID
    上述两者的区别,attach直接进入容器启动命令行终端,不会启动新的进程,用exit退出会导致容器停止。exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器停止。
    推荐使用docker exec命令进入容器,因为退出容器终端,不会导致容器的停止。
(6)从容器内拷贝文件到主机上
    docker cp 容器ID:容器内路径  目的主机路径
    docker cp ae95d8808d75:/tmp/a.txt ~/Desktop
(7)导入和导出容器
    export导出容器的内容流作为一个tar归档文件
      docker export 容器ID > 文件名.tar
      docker export ae95d8808d75 > ~/Desktop/abc.tar
    import从tar包中的内容创建一个新的文件系统再导入为镜像
      cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
      cat ~/Desktop/abc.tar | docker import - znptest/centos:3.0

6.小总结

attach : 当前shell下attach连接指定运行镜像 
build : 通过Dockerfile定制镜像
commit : 提交当前容器为新的镜像
cp : 从容器中拷贝指定文件或目录到宿主机中
create : 创建一个新的容器,同run,但不启动容器
diff : 查看docker容器变化
events : 从docker服务获取容器实时事件
exec : 在已存在的容器上运行命令
export : 导出容器的内容流作为一个tar归档文件
history : 展示一个镜像形成历史
images : 列出系统当前镜像
import : 从tar包中的内容创建一个新的文件系统镜像
info : 显示系统相关信息
inspect : 查看容器详细信息
kill : kill指定docker容器
load : 从一个tar包中加载一个镜像
login : 注册或者登录一个docker源服务器
logout : 从当前Docker registry退出
logs : 输出当前容器日志信息
port : 查看映射端口对应的容器内部源端口
pause : 暂停容器
ps : 列出容器列表
pull : 从docker镜像源服务器拉取指定镜像或者库镜像
push : 推送指定镜像或者库镜像至docker源服务器
restart : 重启运行的容器
rm : 移除一个或者多个容器
rmi : 移除一个或多个镜像【无容器使用该镜像才可删除,否则需删除相关容器才可继续或-f强制删除】
run : 创建一个新的容器并运行一个命令
save : 保存一个镜像为一个tar包
search : 在docker hub中搜索镜像
start : 启动容器
stop : 停止容器
tag : 给源中镜像打标签
top : 查看容器中运行的进程信息
unpause : 取消暂停容器
version : 查看docker 版本号
wait : 截取容器停止时的退出状态值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容