本篇內容介紹了“Docker容器鏡像相關命令如何使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Docker 是一個用于開發、發布和運行應用程序的開放平臺。Docker 可以將應用程序與基礎架構分離(即 不再過于需要底層支持),以便我們可以快速交付軟件。使用 Docker,我們可以像管理應用程序一樣管理基礎架構。Docker 官方
Docker 優勢:
靈活: 即使應用過于復雜,我們也可以使用 Docker 來將應用進行容器化。
輕量級: 因為 Docker 容器是使用宿主機共享的內核,所以不需要額外的硬件支持。
應用隔離: 使用 Docker 運行的容器,可以隔離不同應用程序間的互相影響(即,每個容器都是獨立的)
Docker 使用的是 C/S 架構,Docker Client 用于和 Docker 的守護進程通信(守護進程就是 Server),守護進程可以用來構建、運行和分發 Docker 容器等操作。Docker Client 和守護進程可以在同一系統上運行,或者將 Docker Client 遠程連接到守護進程。使用 REST API
協議,并通過 UNIX
套接字或網絡接口進行通信。另一個 Docker Client 是 Docker Compose(允許我們將一組容器組成的應用程序)
Docker 的架構我們不需要過于關注,因為一般來說 Docker 的 Client 和 Docker 守護進程都是在同一臺服務器上運行。
這里要說的 Docker 三大核心,分別是 image
鏡像,container
容器,repository
倉庫;這可以說是 Docker 最重要的部分。
1)鏡像
Docker 鏡像是 Docker 容器運行時的只讀模板,鏡像可以用來創建 Docker 容器(每一個鏡像都由一系列的層組成)
2)容器
Docker 主要就是利用容器來運行應用,一個 Docker 容器內可以說包含了某個應用運行所需要的環境。每一個 Docker 容器都是從鏡像創建出來的??梢哉f容器就是鏡像創建的運行實例,它可以被啟動,停止,刪除等。而且每個容器都是互相隔離的,保證安全的平臺。
3)倉庫
Docker 倉庫主要就是 用來集中保存鏡像的地方,當我們創建了自己的鏡像后,可以使用 push
命令將它上傳到公共倉庫(Public)或者私用倉庫(Private),這樣的好處是,當我們需要在另外的服務器上使用這個鏡像時,可以直接從倉庫進行拉?。ㄋ俣认鄬^快)
準備工作:
主機名 | 操作系統 | IP 地址 | 軟件包 |
---|---|---|---|
Docker | CentOS 7.x | 192.168.1.4 | docker-ce-19.03.12 docker-ce-cli-19.03.12 |
[root@Docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[root@Docker ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@Docker ~]# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
我們可以使用 yum list docker-ce --showduplicates | sort -r
命令來查看 Docker 的所有版本。
[root@Docker ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@Docker ~]# yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
[root@Docker ~]# systemctl enable docker --now # 配置開機自啟并啟動 [root@Docker ~]# docker version # 查看 Docker 版本
[root@Docker ~]# cat <<END > /etc/docker/daemon.json { "registry-mirrors": [ "https://ipbtg5l0.mirror.aliyuncs.com" ] } END [root@Docker ~]# systemctl daemon-reload && systemctl restart docker # 重啟 Docker
下面我們主要介紹鏡像和容器相關的命令,因為倉庫相關命令不是很多,也就是 pull
push
等命令。
1)查看當前 Docker 的所有鏡像
// 因為我們的 Docker 是剛安裝的. 所以沒有顯示任何鏡像 [root@Docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
上面輸出結果分別是:鏡像名、鏡像對應的標簽、鏡像 ID 號、創建時間、鏡像大小。
2)查看 Docker 倉庫中的 busybox
鏡像
[root@Docker ~]# docker search busybox NAME DESCRIPTION STARS OFFICIAL AUTOMATED busybox Busybox base image. 2447 [OK] progrium/busybox 70 [OK] radial/busyboxplus Full-chain, Internet enabled, busybox made f… 45 [OK] ......
我們可以使用 search
來搜索 Docker 倉庫中的鏡像,上面輸出結果分別是:鏡像名、描述信息、標星、官方鏡像、自動構建。
3)拉取 busybox
鏡像
[root@Docker ~]# docker pull busybox:1.28.4 # 指定鏡像版本號拉取 (latest 表示最新版) 1.28.4: Pulling from library/busybox # 從這個倉庫進行拉取 07a152489297: Pull complete # 拉取完成 Digest: sha256:141c253bc4c3fd0a201d32dc1f493bcf3fff003b6df416dea4f41046e0f37d47 # 這就是鏡像的層 (也算是個標識符) Status: Downloaded newer image for busybox:1.28.4 # 下載的新鏡像名稱和版本號 docker.io/library/busybox:1.28.4 # 完整倉庫地址
4)給鏡像進行打標簽(類似于別名操作)
[root@Docker ~]# docker tag busybox:1.28.4 testbusybox:test
tag
命令在有些時候還是蠻關鍵的,比如說我們要拉取的鏡像在國外,但是由于網絡原因,導致我們無法進行拉取,此時我們可以在國內的鏡像倉庫拉取個同樣的鏡像,然后來使用 tag
命令來進行打標簽操作,改成要拉取國外鏡像的名稱即可。
5)將 busybox
鏡像導出
[root@Docker ~]# docker save -o busybox.tgz busybox:1.28.4
6)將 busybox
鏡像導入
[root@Docker ~]# docker load -i busybox.tgz
docker rmi
:通過鏡像名進行刪除(加上 -f
可以實現基于鏡像 ID 刪除)
1)創建一個容器
[root@Docker ~]# docker create -it --name busybox busybox:1.28.4 /bin/sh
-i
:表示讓容器的輸入保持打開;
-t
:表示給容器分配一個偽終端(就是我們后面加的 /bin/bash
)
docker ps -a
:表示查看所有運行的容器(不管容器處于任何狀態,都會進行顯示)
2)啟動一個容器
[root@Docker ~]# docker start busybox[root@Docker ~]# docker ps# 查看當前處于運行狀態的容器
當我們要關閉容器時,可以使用 stop
;重啟時,可以使用 restart
命令來進行操作。
3)刪除容器
[root@Docker ~]# docker stop busybox [root@Docker ~]# docker rm busybox # 我們可以通過容器名或者容器 ID 來進行刪除
4)直接運行容器
[root@Docker ~]# docker run -d --name busybox busybox:1.28.4 /bin/sh
docker exec -it busybox /bin/sh
命令的作用就是可以使我們進入容器內。
[root@Docker ~]# docker pull nginx:1.18.0 [root@Docker ~]# docker images [root@Docker ~]# docker run -d --name nginx -p 1888:80 -v /zhangsan:/usr/share/nginx/html/ nginx:1.18.0 [root@Docker ~]# echo "Hello 河北彭于晏" > /zhangsan/index.html [root@Docker ~]# curl 127.0.0.1:1888
-p
:指定容器運行時的端口(前面是宿主機端口,后面是容器內端口;-P
這單個字母是用來讓容器實現 隨機端口映射 的)
-v
:指定數據卷,相當于是掛載命令,我們可以將宿主機的目錄掛載到容器內(可以增加多個 -v
來配置多個數據卷)
“Docker容器鏡像相關命令如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。