第七章 Docker---容器的命令详解

1. Docker容器的特殊规则:

  • 一个容器可以运行多个进程,但是必须有一个超管进程(init),对容器内的进程进行管理;
  • 如果容器内的进程出问题,多进程情况下查看日志将比较麻烦;
  • 因为容器中运行的应用进程的日志不在写入日志文件中;
  • 而是发送给容器控制台,Docker客户端在容器外通过命令访问控制台,查看容器内进程的日志;
  • 所以一个容器中只运行一个进程及其子进程,可以省略启动超管进程;
  • 容器启动直接自动开启应用进程,如果应用进程出问题,可直接查看控制台,便于分析问题;
  • 这样容器管理也就被简化了。

2. 创建容器

[root@centos_7_1]:[~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@centos_7_1]:[~]# docker container run --name a1 -it alpine:3.8
/ #
/ # ls /
bin    dev    etc    home   lib    media  mnt    proc   root   run    sbin   srv    sys    tmp    usr    var
/ #
#-------------------保持当前终端不退出,另开一个终端,查看当前主机有哪些容器-------------------
[root@centos_7_1]:[~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
164b90dacf73        alpine:3.8          "/bin/sh"           About a minute ago   Up About a minute                       a1

上述命令详细说明:

  • docker container ls
    • 查看当前主机有哪些容器正在运行,运行中的主机STATUS属性显示UP。
  • docker container run
    • 创建容器
  • --name a1
    • 指定容器名称为a1
  • -i
    • 选项,表示创建容器后打开交互式接口。
  • -t
    • 选项,表示为容器创建一个伪终端。
  • 执行以上各种组合选项后,进入容器伪终端界面。
  • 这时可以像在正常Linux虚拟中一样,执行各种Linux命令。

3. 退出容器

/ # ls /
bin    dev    etc    home   lib    media  mnt    proc   root   run    sbin   srv    sys    tmp    usr    var
/ # exit
[root@centos_7_1]:[~]#
#-----------------------------另开一个终端,查看当前有哪些终端-----------------------------
[root@centos_7_1]:[~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@centos_7_1]:[~]# docker container ls -a
CONTAINER ID        IMAGE                 COMMAND              CREATED             STATUS                      PORTS    NAMES
164b90dacf73        alpine:3.8            "/bin/sh"            3 minutes ago       Exited (0) 7 seconds ago
  • exit
    • 在容器中键入exit表示退出容器
  • docker container ls -a
    • -a选项与Linux大多数命令的选项表达的意思相同;
    • 表示查看所有容器,包括已开启或者已停止的。

4. 打开已停止的容器

[root@centos_7_1]:[~]# docker container start a1
a1
[root@centos_7_1]:[~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS           NAMES
164b90dacf73        alpine:3.8          "/bin/sh"           26 minutes ago      Up 2 seconds           a1
[root@centos_7_1]:[~]# docker container attach a1
/ #
/ #
#-----------------------------分割线-----------------------------
# 使用快捷键剥离终端
[root@centos_7_1]:[~]#
[root@centos_7_1]:[~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
164b90dacf73        alpine:3.8          "/bin/sh"           15 hours ago        Up 17 seconds                           a1
[root@centos_7_1]:[~]# docker container stop a1
a1
[root@centos_7_1]:[~]#
[root@centos_7_1]:[~]# docker container ls -a
CONTAINER ID        IMAGE                 COMMAND              CREATED             STATUS                          PORTS        NAMES
164b90dacf73        alpine:3.8            "/bin/sh"            15 hours ago        Exited (137) 9 seconds ago        a1

** 上述命令详细说明:**

  • docker container start a1
    • 因为容器已常见,所以直接用start打开已停止的容器。
    • 已关闭再次打开的情况下,start命令并不能进入容器的终端窗口中。
  • docker container attach a1
    • 关联到a1容器的终端窗口中。
  • 想在容器终端窗口中,剥离终端:
    • 使用快捷键:先按键盘:ctrl+p,松开键盘,再次按:ctrl+q。
  • 其他Docker快捷键可以查询:https://docs.docker.com/engine/reference/commandline/attach/
  • docker container stop a1
    • 在宿主机上用stop命令终止运行中的容器

5. Docker容器命令的所有子命令

[root@centos_7_1]:[~]# docker container --help

Usage:  docker container COMMAND

Manage containers

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  inspect     Display detailed information on one or more containers
  kill        Kill one or more running containers
  logs        Fetch the logs of a container
  ls          List containers
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  prune       Remove all stopped containers
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  run         Run a command in a new container
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  wait        Block until one or more containers stop, then print their exit codes

Run 'docker container COMMAND --help' for more information on a command.

6. Docker新版本与老版本命令对比

[root@centos_7_1]:[~]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
164b90dacf73        alpine:3.8          "/bin/sh"           16 hours ago        Up 3 seconds                            a1
[root@centos_7_1]:[~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
164b90dacf73        alpine:3.8          "/bin/sh"           16 hours ago        Up 7 seconds                            a1
  • Docker容器命令:
    • 老版本:
      • docker ps
      • docker ps -a
    • 新版本:
      • docker container ls
      • docker container ls -a
        Docker分类---文章目录:

| :----- | :-----: |
| 第一章 初识Docker | 点击此处 |
| 第二章 安装Docker以及简单配置 | 点击此处 |
| 第三章 Docker容器的生命周期 | 点击此处 |
| 第四章 Docker命令汇总 | 点击此处 |
| 第五章 Docker基础命令详解 | 点击此处 |
| 第六章 Docker---镜像的命令详解 | 点击此处 |
| 第七章 Docker---容器的命令详解 | 点击此处 |
| 第八章 Docker与Alpine不解之缘 | 点击此处 |
|未完待续| |

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

推荐阅读更多精彩内容

  • 母亲节快乐在上周,五月的第二个星期天。我知道母亲节,数着时间点的过。像是在给一位超级无敌重要的朋友,送凌晨0:00...
    怡草卷书阅读 315评论 0 0
  • 十月又过去了,岁月就这么匆匆地来,匆匆地离开,不着痕迹。 这个月过得很充实,每天认真地工作,认真地生活。 读书 三...
    whiSper19阅读 184评论 0 0
  • 爱孩子,就该放心的让孩子去经历人生的困难;爱孩子,就该祝福着让孩子去体验生活的快乐。 第二次,宝贝妞要...
    宝贝雨点儿阅读 332评论 2 2