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

1. Docker容器的特殊規(guī)則:

  • 一個容器可以運行多個進程,但是必須有一個超管進程(init),對容器內(nèi)的進程進行管理;
  • 如果容器內(nèi)的進程出問題,多進程情況下查看日志將比較麻煩;
  • 因為容器中運行的應用進程的日志不在寫入日志文件中;
  • 而是發(fā)送給容器控制臺,Docker客戶端在容器外通過命令訪問控制臺,查看容器內(nèi)進程的日志;
  • 所以一個容器中只運行一個進程及其子進程,可以省略啟動超管進程;
  • 容器啟動直接自動開啟應用進程,如果應用進程出問題,可直接查看控制臺,便于分析問題;
  • 這樣容器管理也就被簡化了。

2. 創(chuàng)建容器

[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
    • 創(chuàng)建容器
  • --name a1
    • 指定容器名稱為a1
  • -i
    • 選項,表示創(chuàng)建容器后打開交互式接口。
  • -t
    • 選項,表示為容器創(chuàng)建一個偽終端。
  • 執(zhí)行以上各種組合選項后,進入容器偽終端界面。
  • 這時可以像在正常Linux虛擬中一樣,執(zhí)行各種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大多數(shù)命令的選項表達的意思相同;
    • 表示查看所有容器,包括已開啟或者已停止的。

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打開已停止的容器。
    • 已關(guān)閉再次打開的情況下,start命令并不能進入容器的終端窗口中。
  • docker container attach a1
    • 關(guān)聯(lián)到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不解之緣 | 點擊此處 |
|未完待續(xù)| |

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 母親節(jié)快樂在上周,五月的第二個星期天。我知道母親節(jié),數(shù)著時間點的過。像是在給一位超級無敵重要的朋友,送凌晨0:00...
    怡草卷書閱讀 356評論 0 0
  • 十月又過去了,歲月就這么匆匆地來,匆匆地離開,不著痕跡。 這個月過得很充實,每天認真地工作,認真地生活。 讀書 三...
    whiSper19閱讀 220評論 0 0
  • 愛孩子,就該放心的讓孩子去經(jīng)歷人生的困難;愛孩子,就該祝福著讓孩子去體驗生活的快樂。 第二次,寶貝妞要...
    寶貝雨點兒閱讀 396評論 2 2

友情鏈接更多精彩內(nèi)容