docker容器的常用命令及使用

一、docker的常用命令

1、使用--help查看docker常用命令

docker --help

2、docker常用命令及解釋


Management Commands:
  container   Manage containers
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  volume      Manage volumes

Commands:
  attach      將本地標準輸入、輸出和錯誤流附加到正在運行的容器中
  commit      通過容器內容創建一個新的鏡像
  cp          在容器和本地系統之間複製文件
  create      創建一個新的容器
  diff        檢查容器文件系統上文件或目錄的更改
  exec        在一個運行的容器上運行命令
  export      將容器的文件系統導出爲tar存檔文件
  inspect     顯示一個或多個容器的詳細信息
  kill        殺掉一個或多個正在運行的容器
  logs        獲取容器的日誌
  ls          顯示容器列表
  pause       暫停一個或多個容器中的所有進程
  unpause     恢復一個或多個容器暫停的所有進程
  port        列出容器的端口映射或特定映射
  prune       刪除所有停止運行的容器
  rename      爲一個容器重命名
  restart     重啓一個或多個容器
  rm          刪除一個或多個容器
  run         在一個新的容器中運行命令
  start       啓動一個或多個停止運行的容器
  stats       顯示容器資源使用統計數據的實時流
  stop        關閉一個或多個運行的容器
  top         顯示容器正在運行的進程
  update      更新一個或多個容器的配置
  wait        阻塞,直到一個或多個容器停止,然後打印它們的退出代碼

二、docker常用命令使用

備註:創建、刪除、啓動、停止等容器命令,默認不用寫container,直接操作容器即可。

1、創建、刪除容器

  • 創建一個容器
    docker container create --name=my_nginx nginx

     

  • 刪除一個容器
    docker rm my_nginx

     

  • 查看正在運行的容器
    docker ps

     

2、搜索、下載鏡像

  • 搜索網上是否有所需要的鏡像
    docker search nginx

  • 下載所需要的鏡像(我這裏docker pull docker.io/bitnami/nginx 只做演示用)
    docker pull nginx

  • 查看下載的鏡像
    docker images
    docker images|grep nginx

3、啓動、停止容器

  • 運行一個容器(docker run == docker create + docker start,所以可以直接通過run命令直接創建並啓動鏡像
    docker run -itd --name=my_nginx01 -p 60:80 nginx
    doker ps
    
    
    參數
    --name  爲容器設置一個名字
    -i      interactive交互模式
    -t      tty打開終端
    -d      daemon後臺運行
    -p      開啓DNAT映射,將宿主機的60映射至容器的80
    不常用參數
    
    -v /var/www/ /usr/share/nginx/html/    爲容器映射一個外部的文件,容器生成的數據將保存在外部宿主機上,防止數據丟失。
    -c                                     指定分配的cpu權重,用於共享CPU環境
    --cpuset="",                          設置容器可以使用哪些CPU,此參數可以用來容器獨佔CPU
    -m                                     爲容器分配指定的最大可用內存
    -u, --user="",                        指定容器的用戶
    -w, --workdir="",                     指定容器的工作目錄
    -e, --env=[],                         指定環境變量,容器中可以使用該環境變量
    --cidfile="",                         運行容器後,在指定文件中寫入容器PID值,一種典型的監控系統用法
    -h,                                   指定容器的主機名
    -v,                                   給容器掛載存儲卷,掛載到容器的某個目錄
    --name ,                              指定容器名字,後續可以通過名字進行容器管理,links特性需要使用名字
    --restart="no",                       
    指定容器停止後的重啓策略:no:容器退出時不重啓/on-failure:容器故障退出(返回值非零)時重啓/always:容器退出時總是重啓(常駐容器需要配置此參數)
    

     

  • 停止容器
    docker stop b67(CONTAINER ID)

  • 啓動容器
    docker start b67(CONTAINER ID)

三、容器命令示例

#查看當前運行的容器
[root@liangkk ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
da1cc40d9e75        nginx               "nginx -g 'daemon of…"   4 days ago          Up 4 days           0.0.0.0:80->80/tcp   elegant_maxwell
#查看容器中運行的進程
[root@liangkk ~]# docker top da
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                2071                2055                0                   03:19               ?                   00:00:00            nginx: master process nginx -g daemon off;
101                 2100                2071                0                   03:19               ?                   00:00:00            nginx: worker process
#查看容器的端口映射 
[root@liangkk ~]# docker port da
80/tcp -> 0.0.0.0:80
#爲容器重命名
[root@liangkk ~]# docker rename da my_nginx
[root@liangkk ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
da1cc40d9e75        nginx               "nginx -g 'daemon of…"   4 days ago          Up 4 days           0.0.0.0:80->80/tcp   my_nginx
#查看容器日誌
[root@liangkk ~]# docker logs my_nginx
172.17.0.1 - - [12/Sep/2019:01:50:29 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
#查看容器的實時狀態
[root@liangkk ~]# docker stats my_nginx

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
da1cc40d9e75        my_nginx            0.00%               1.402MiB / 976.3MiB   0.14%               1.7kB / 1.23kB      1.81MB / 0B         2
#查看容器的詳細信息
[root@liangkk ~]# docker inspect my_nginx
[
    {
        "Id": "da1cc40d9e7557428234a55b7c8c2e7fd9e3bb4768b1dc907a46ed3ada368120",
        "Created": "2019-09-11T16:56:12.911285703Z",
        "Path": "nginx",
        "Args": [
            "-g",
            "daemon off;"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2071,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2019-09-11T16:56:13.825761926Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
......
            "SandboxKey": "/var/run/docker/netns/e05241fb2ebd",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "e5de8e5e0d7fc676af6d99a558fc8f9fcc0efc4eb95e3dc519e8abc6dc647db1",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "3fb516fe6680bbd1e6c5d36e6de84eba967edcaf404ccfc96de4aea3d1041408",
                    "EndpointID": "e5de8e5e0d7fc676af6d99a558fc8f9fcc0efc4eb95e3dc519e8abc6dc647db1",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]
[root@liangkk ~]# 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章