Docker學習之Docker容器常用操作命令(7)

Docker學習之Docker容器常用操作命令

Ubuntu系統環境介紹介紹
Ubuntu版本:18.04.1
系統配置: 64位
Linux內核:5.3.0-42-generic
Docker版本: 19.03.8
備註:以下操作容器的命令以nginx爲例

  • 運行容器:docker run --name 容器名 -i -t -p 主機端口:容器端口 -d -v 主機目錄:容器目錄:ro 鏡像ID或鏡像名:TAG
參數 描述
–name 指定容器名,可自定義,不指定自動命名
-i 以交互模式運行容器
-t 分配一個僞終端,即命令行,通常-it組合來使用
-p 指定映射端口,講主機端口映射到容器內的端口
-d 後臺運行容器
-v 指定掛載主機目錄到容器目錄,默認爲rw讀寫模式,ro表示只讀
acestang@acestang:~$ sudo docker run --name my-nginx -i -t -p 8080:8080 -d  nginx:latest
03b527fbbdd032cf6a3c97a3bb73ff98bec4e6aad59b40f26e162c3e7d27876f
  • 查看容器列表:docker ps -a -q
參數 描述
ps 查看正在運行的容器
-a 查看所有容器(運行的和未運行的)
-q 只查看容器的ID
#查看運行中的容器
acestang@acestang:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                            NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   About a minute ago   Up About a minute   80/tcp, 0.0.0.0:8080->8080/tcp   my-nginx
#查看所有容器
acestang@acestang:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                         PORTS                            NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   About a minute ago   Up About a minute              80/tcp, 0.0.0.0:8080->8080/tcp   my-nginx
1037c2890412        fce289e99eb9        "/hello"                 About an hour ago    Exited (0) About an hour ago                                    great_wilson
# 查看所有容器的容器ID
acestang@acestang:~$ sudo docker ps -a -q
03b527fbbdd0
1037c2890412
  • 啓動容器:docker start [容器ID或容器名]
acestang@acestang:~$ sudo docker start my-nginx
my-nginx
acestang@acestang:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   8 minutes ago       Up 8 minutes        80/tcp, 0.0.0.0:8080->8080/tcp   my-nginx
  • 停止容器:docker stop [容器ID或容器名]
acestang@acestang:~$ sudo docker stop my-nginx
my-nginx
# my-nginx容器已經停止
acestang@acestang:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  • 刪除容器:docker rm -f [容器ID或容器名]
# 可以查看當前包含兩個容器
acestang@acestang:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   10 minutes ago      Exited (0) 53 seconds ago                          my-nginx
1037c2890412        fce289e99eb9        "/hello"                 About an hour ago   Exited (0) About an hour ago                       great_wilson
#刪除容器ID爲:1037c2890412 的容器
acestang@acestang:~$ sudo docker rm -f 1037c2890412
1037c2890412
# 可以查看容器ID:1037c2890412 的容器已經刪除
acestang@acestang:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS               NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   10 minutes ago      Exited (0) About a minute ago                       my-nginx
  • 查看日誌:docker logs [容器ID或容器名]

  • 進入正在運行的容器:docker exec -it [容器ID或者容器名] /bin/bash

進入正在運行的容器並且開啓交互模式終端
/bin/bash是固有寫法,作用是因爲docker後臺必須運行一個進程,否則容器就會退出,在這裏表示啓動容器後啓動bash。
也可以用docker exec在運行中的容器執行命令

#進入到my-nginx容器
acestang@acestang:~$ sudo docker exec -it my-nginx /bin/bash
#查看nginx 的版本
root@03b527fbbdd0:/# nginx -v
nginx version: nginx/1.17.9
  • 退出容器:Ctrl+P+Q

備註: docker run 和 docker start的區別:
docker run:相當於執行了兩步操作,將鏡像放入容器中(docker create),然後將容器啓動,使之變成運行時容器(docker start),docker run 只在第一次運行時使用,將鏡像放到容器中,以後再次啓動這個容器時,只需要使用命令docker start 即可。
docker start:啓動已經存在的容器

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