欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker 最常用的鏡像命令和容器命令詳解

 更新時間:2020年08月25日 10:30:09   作者:哈嘍沃德先生  
這篇文章主要介紹了Docker 最常用的鏡像命令和容器命令,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

本文列出了 Docker 使用過程中最常用的鏡像命令和容器命令,以及教大家如何操作容器數(shù)據(jù)卷,實現(xiàn)容器數(shù)據(jù)的備份。熟練練習這些命令以后,再來一些簡單的應用部署練習,大家就可以學習 Docker 的鏡像構建、備份恢復遷移、鏡像倉庫、網絡、集群等等更多的內容。

鏡像相關命令

  官方文檔:https://docs.docker.com/reference/

查看鏡像

[root@localhost ~]# docker images
REPOSITORY  TAG   IMAGE ID  CREATED  SIZE
hello-world  latest  bf756fb1ae65 7 months ago 13.3kB
  • REPOSITORY:鏡像在倉庫中的名稱,本文中以后都簡稱鏡像名稱
  • TAG:鏡像標簽
  • IMAGE ID:鏡像 ID
  • CREATED:鏡像的創(chuàng)建日期(不是獲取該鏡像的日期)
  • SIZE:鏡像大小

  這些鏡像都是存儲在 Docker 宿主機的 /var/lib/docker 目錄下。

搜索鏡像

  如果你需要從網絡中查找需要的鏡像,可以通過以下命令搜索。

docker search 鏡像名稱

  • NAME:鏡像名稱
  • DESCRIPTION:鏡像描述
  • STARS:用戶評價,反映一個鏡像的受歡迎程度
  • OFFICIAL:是否為官方構建
  • AUTOMATED:自動構建,表示該鏡像由 Docker Hub 自動構建流程創(chuàng)建的。

拉取鏡像

  拉取鏡像就是從中央倉庫下載鏡像到本地。

docker pull 鏡像名稱

  假如我要拉取 centos 鏡像到本地,如果不聲明 tag 鏡像標簽信息則默認拉取 latest 版本,也可以通過:https://hub.docker.com/ 搜索該鏡像,查看支持的 tag 信息。

  通過查看 tag 信息,如果我們要下載 centos7 的鏡像。

docker pull centos:7

刪除鏡像

  按鏡像 ID 刪除鏡像。

# 刪除單個鏡像
docker rmi 鏡像ID
# 刪除多個鏡像
docker rmi 鏡像ID 鏡像ID 鏡像ID

  docker images -q 可以查詢到所有鏡像的 ID,通過組合命令可以實現(xiàn)刪除所有鏡像的操作。

docker rmi `docker images -q`

注意:如果通過某個鏡像創(chuàng)建了容器,則該鏡像無法刪除。

解決辦法:先刪除鏡像中的容器,再刪除該鏡像。

容器相關命令

查看容器

  查看正在運行的容器。

[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  • CONTAINER ID:容器 ID
  • IMAGE:所屬鏡像
  • COMMAND
  • CREATED:創(chuàng)建時間
  • STATUS:容器狀態(tài)
  • PORTS:端口
  • NAMES:容器名稱

  查看停止的容器。

docker ps -f status=exited

  查看所有容器(包括運行和停止)。

docker ps -a

  查看最后一次運行的容器。

docker ps -l

創(chuàng)建與啟動容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • -i:表示運行容器;
  • -t:表示容器啟動后會進入其命令行。加入這兩個參數(shù)后,容器創(chuàng)建就能登錄進去。即分配一個偽終端;
  • --name:為創(chuàng)建的容器命名;
  • -v:表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄),可以使用多個 -v 做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上;
  • -d:在 run 后面加上 -d 參數(shù),則會創(chuàng)建一個守護式容器在后臺運行(這樣創(chuàng)建容器后不會自動登錄容器,如果只加 -i -t 兩個參數(shù),創(chuàng)建容器后就會自動進容器里);
  • -p:表示端口映射,前者是宿主機端口,后者是容器內的映射端口??梢允褂枚鄠€ -p 做多個端口映射。
  • -P:隨機使用宿主機的可用端口與容器內暴露的端口映射。

創(chuàng)建并進入容器

  下面這行命令的意思就是通過鏡像 AA 創(chuàng)建一個容器 BB,運行容器并進入容器的 /bin/bash。

docker run -it --name 容器名稱 鏡像名稱:標簽 /bin/bash

注意:Docker 容器運行必須有一個前臺進程, 如果沒有前臺進程執(zhí)行,容器認為是空閑狀態(tài),就會自動退出。

退出當前容器

exit

守護式方式創(chuàng)建容器

docker run -di --name 容器名稱 鏡像名稱:標簽

登錄守護式容器方式

docker exec -it 容器名稱|容器ID /bin/bash

停止與啟動容器

# 停止容器
docker stop 容器名稱|容器ID
# 啟動容器
docker start 容器名稱|容器ID

文件拷貝

  如果我們需要將文件拷貝到容器內可以使用 cp 命令。

docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄

  也可以將文件從容器內拷貝出來。

docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄

目錄掛載(容器數(shù)據(jù)卷操作)

  我們可以在創(chuàng)建容器的時候,將宿主機的目錄與容器內的目錄進行映射,這樣我們就可以通過修改宿主機某個目錄的文件從而去影響容器,而且這個操作是雙向綁定的,也就是說容器內的操作也會影響到宿主機,實現(xiàn)備份功能。

  但是容器被刪除的時候,宿主機的內容并不會被刪除,因為底層是通過拷貝實現(xiàn)的。如果多個容器掛載同一個目錄,其中一個容器被刪除,其他容器的內容也不會受到影響,同理,底層是拷貝實現(xiàn)的。

  但是容器被刪除的時候,宿主機的內容并不會被刪除。如果多個容器掛載同一個目錄,其中一個容器被刪除,其他容器的內容也不會受到影響。

  容器與宿主機之間的數(shù)據(jù)卷屬于引用的關系,數(shù)據(jù)卷是從外界掛載到容器內部中的,所以可以脫離容器的生命周期而獨立存在,正是由于數(shù)據(jù)卷的生命周期并不等同于容器的生命周期,在容器退出或者刪除以后,數(shù)據(jù)卷仍然不會受到影響,數(shù)據(jù)卷的生命周期會一直持續(xù)到沒有容器使用它為止。

  創(chuàng)建容器添加 -v 參數(shù),格式為宿主機目錄:容器目錄,例如:

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 多目錄掛載
docker run -di -v /宿主機目錄:/容器目錄 -v /宿主機目錄2:/容器目錄2 鏡像名

目錄掛載操作可能會出現(xiàn)權限不足的提示。這是因為 CentOS7 中的安全模塊 SELinux 把權限禁掉了,在 docker run 時通過 --privileged=true 給該容器加權限來解決掛載的目錄沒有權限的問題。

匿名掛載

  匿名掛載只需要寫容器目錄即可,容器外對應的目錄會在 /var/lib/docker/volume 中生成。

# 匿名掛載
docker run -di -v /usr/local/data --name centos7-02 centos:7
# 查看 volume 數(shù)據(jù)卷信息
docker volume ls

具名掛載

  具名掛載就是給數(shù)據(jù)卷起了個名字,容器外對應的目錄會在 /var/lib/docker/volume 中生成。

# 匿名掛載
docker run -di -v docker_centos_data:/usr/local/data --name centos7-03 centos:7
# 查看 volume 數(shù)據(jù)卷信息
docker volume ls

指定目錄掛載

  一開始給大家講解的方式就屬于指定目錄掛載,這種方式的掛載不會在 /var/lib/docker/volume 目錄生成內容。

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 多目錄掛載
docker run -di -v /宿主機目錄:/容器目錄 -v /宿主機目錄2:/容器目錄2 鏡像名

查看目錄掛載關系

  通過 docker volume inspect 數(shù)據(jù)卷名稱 可以查看該數(shù)據(jù)卷對應宿主機的目錄地址。

[root@localhost ~]# docker volume inspect docker_centos_data
[
 {
 "CreatedAt": "2020-08-13T20:19:51+08:00",
 "Driver": "local",
 "Labels": null,
 "Mountpoint": "/var/lib/docker/volumes/docker_centos_data/_data",
 "Name": "docker_centos_data",
 "Options": null,
 "Scope": "local"
 }
]

  通過 docker inspect 容器ID或名稱 ,在返回的 JSON 節(jié)點中找到 Mounts,可以查看詳細的數(shù)據(jù)掛載信息。

只讀/讀寫

# 只讀。只能通過修改宿主機內容實現(xiàn)對容器的數(shù)據(jù)管理。
docker run -it -v /宿主機目錄:/容器目錄:ro 鏡像名
# 讀寫,默認。宿主機和容器可以雙向操作數(shù)據(jù)。
docker run -it -v /宿主機目錄:/容器目錄:rw 鏡像名

volumes-from(繼承)

# 容器 centos7-01 指定目錄掛載
docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7
# 容器 centos7-04 和 centos7-05 相當于繼承 centos7-01 容器的掛載目錄
docker run -di --volumes-from centos7-01 --name centos7-04 centos:7
docker run -di --volumes-from centos7-01 --name centos7-05 centos:7

查看容器 IP 地址

  我們可以通過以下命令查看容器的元信息。

docker inspect 容器名稱|容器ID

  也可以直接執(zhí)行下面的命令直接輸出 IP 地址。

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱|容器ID

刪除容器

# 刪除指定容器
docker rm 容器名稱|容器ID
# 刪除多個容器
docker rm 容器名稱|容器ID 容器名稱|容器ID

之前給大家介紹過Docker run 命令的使用方法詳解,感興趣的朋友可以參考下!

到此這篇關于Docker 最常用的鏡像命令和容器命令詳解的文章就介紹到這了,更多相關Docker鏡像命令和容器命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Docker搭建部署Node項目的方法步驟

    Docker搭建部署Node項目的方法步驟

    本文主要介紹了Docker搭建部署Node項目的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Docker部署springboot項目到騰訊云的實現(xiàn)步驟

    Docker部署springboot項目到騰訊云的實現(xiàn)步驟

    本文主要介紹了Docker部署springboot項目到騰訊云的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理

    docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理

    Docker中的/var/lib/docker/overlay2目錄是用于存儲Docker容器的數(shù)據(jù)層和鏡像層的,使用Docker一段時間后這個目錄可能會變得非常大,這篇文章主要給大家介紹了關于docker部署項目/var/lib/docker/overlay2目錄滿了該如何清理的相關資料,需要的朋友可以參考下
    2024-04-04
  • dockerfile的使用及使用dockerfile部署springboot項目的過程

    dockerfile的使用及使用dockerfile部署springboot項目的過程

    Dockerfile是用來構建Docker鏡像的文本文件,是由一條條構建鏡像所需的指令和參數(shù)構成的腳本,這篇文章主要介紹了dockerfile的使用,使用dockerfile部署springboot項目,需要的朋友可以參考下
    2023-04-04
  • Docker中運行nginx并掛載本地目錄到鏡像中的方法

    Docker中運行nginx并掛載本地目錄到鏡像中的方法

    這篇文章主要介紹了Docker中運行nginx并掛載本地目錄到鏡像中的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • docker中容器運行時如何將目錄和宿主機進行掛載

    docker中容器運行時如何將目錄和宿主機進行掛載

    對于一個已經運行的容器,如果后續(xù)需要新掛載一個目錄怎么辦?下面這篇文章主要給大家介紹了關于docker中容器運行時如何將目錄和宿主機進行掛載的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-05-05
  • docker啟動mysql并映射數(shù)據(jù)目錄(含備份腳本)

    docker啟動mysql并映射數(shù)據(jù)目錄(含備份腳本)

    本文主要介紹了docker啟動mysql并映射數(shù)據(jù)目錄(含備份腳本),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • 在docker容器中使用非root用戶執(zhí)行腳本操作

    在docker容器中使用非root用戶執(zhí)行腳本操作

    這篇文章主要介紹了在docker容器中使用非root用戶執(zhí)行腳本操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Linux Docker安裝wordpress的方法詳解教程

    Linux Docker安裝wordpress的方法詳解教程

    這篇文章主要介紹了Linux Docker安裝wordpress的方法詳解教程的相關資料,需要的朋友可以參考下
    2016-10-10
  • Docker安裝mysql教程以及解決mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘問題

    Docker安裝mysql教程以及解決mysqld: Can‘t read dir&nbs

    本文詳細介紹了如何通過Docker來安裝和配置MySQL數(shù)據(jù)庫,包括拉取MySQL鏡像、啟動MySQL容器、配置MySQL、解決常見錯誤等步驟,提供了詳盡的命令和參數(shù)說明,幫助用戶順利完成MySQL的安裝和配置,文中還提到了如何處理MySQL容器啟動時遇到的“無法讀取目錄”
    2024-10-10

最新評論