1. 程式人生 > 其它 >docker容器的使用和操作

docker容器的使用和操作

一、容器概念

1、什麼是容器

容器(Container):在docker中指的是從映象建立的應用程式執行例項。

可以將容器看作將一個 應用程式及其依賴環境打包 而成的集裝箱。

容器的實質是程序,與直接在主機執行不同,容器程序在屬於自己的獨立的名稱空間內執行。這種特性使得容器封裝的應用程式比直接在主機上執行的應用程式更加安全。

2、容器的基本資訊

# docker ps -a 顯示本地所有的容器
[root@hqs imglayers]# docker ps -a
容器ID             容器使用的映象         啟動容器時執行的命令       容器建立時間         容器執行狀態               容器對外發布埠    容器名稱
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS            NAMES
0d5df0735154        imglayers-test      "/bin/sh -c 'python …"   32 minutes ago      Exited (0) 32 minutes ago                    wizardly_lehmann
cd866d55dc6a        imglayers-test      "/bin/sh -c 'python …"   41 minutes ago      Exited (0) 41 minutes ago                    charming_zhukovsky

# --no-trunc顯示完整ID
[root@hqs imglayers]# docker ps -a --no-trunc
CONTAINER ID                                                       IMAGE               COMMAND                             CREATED             STATUS                          PORTS               NAMES
0d5df073515409bd606139f4c0dd8d5bf91360fa15700a7e64935e8da35bb8cd   imglayers-test      "/bin/sh -c 'python /app/app.py'"   40 minutes ago      Exited (0) About a minute ago                       wizardly_lehmann
cd866d55dc6a8b626b3c8f2695bc43cc2bcf91adc58c549413dad3855cfd6947   imglayers-test      "/bin/sh -c 'python /app/app.py'"   48 minutes ago      Exited (0) 48 minutes ago                           charming_zhukovsky

容器的唯一標識容器ID與映象ID一樣採用UUID形式,由64個十六進位制字元組成。通常採用前12個字元,也可以使用更短格式(前幾個字元)。

# 完整ID標識
[root@hqs imglayers]# docker start 0d5df073515409bd606139f4c0dd8d5bf91360fa15700a7e64935e8da35bb8cd
0d5df073515409bd606139f4c0dd8d5bf91360fa15700a7e64935e8da35bb8cd
# 前12字元ID標識
[root@hqs imglayers]# docker start 0d5df0735154
0d5df0735154
# 更短字元ID標識
[root@hqs imglayers]# docker start 0d5
0d5

容器ID能保證唯一性,但是不方便記憶,可以使用容器名稱來引用容器。
容器名稱預設是Docker自動生成的,也可以在執行 docker run 的時候用 --name 選項自行指定。
還可以使用 docker rename 命令重新命名容器。

[root@hqs imglayers]# docker stop wizardly_lehmann
wizardly_lehmann

# 建立時用--name指定容器名
[root@hqs imglayers]# docker run --name hqs_test  imglayers-test
Hello,  World!@!!!!!!
[root@hqs imglayers]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
89076ab59bd1        imglayers-test      "/bin/sh -c 'python …"   47 seconds ago      Exited (0) 46 seconds ago                       hqs_test

# 重新命名容器名
[root@hqs imglayers]# docker rename 78b9c851eb07 newbee
[root@hqs imglayers]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                          PORTS               NAMES
89076ab59bd1        imglayers-test      "/bin/sh -c 'python …"   About a minute ago   Exited (0) About a minute ago                       hqs_test
78b9c851eb07        imglayers-test      "--name test"            3 minutes ago        Created                                             newbee