Docker容器鏡像相關(guān)命令基本介紹與使用
一、Docker 介紹
Docker 是一個(gè)用于開發(fā)、發(fā)布和運(yùn)行應(yīng)用程序的開放平臺(tái)。Docker 可以將應(yīng)用程序與基礎(chǔ)架構(gòu)分離(即 不再過于需要底層支持),以便我們可以快速交付軟件。使用 Docker,我們可以像管理應(yīng)用程序一樣管理基礎(chǔ)架構(gòu)。Docker 官方
Docker 優(yōu)勢(shì):
靈活: 即使應(yīng)用過于復(fù)雜,我們也可以使用 Docker 來將應(yīng)用進(jìn)行容器化。
輕量級(jí): 因?yàn)?Docker 容器是使用宿主機(jī)共享的內(nèi)核,所以不需要額外的硬件支持。
應(yīng)用隔離: 使用 Docker 運(yùn)行的容器,可以隔離不同應(yīng)用程序間的互相影響(即,每個(gè)容器都是獨(dú)立的)
1.Docker 架構(gòu)
Docker 使用的是 C/S 架構(gòu),Docker Client 用于和 Docker 的守護(hù)進(jìn)程通信(守護(hù)進(jìn)程就是 Server),守護(hù)進(jìn)程可以用來構(gòu)建、運(yùn)行和分發(fā) Docker 容器等操作。Docker Client 和守護(hù)進(jìn)程可以在同一系統(tǒng)上運(yùn)行,或者將 Docker Client 遠(yuǎn)程連接到守護(hù)進(jìn)程。使用 REST API
協(xié)議,并通過 UNIX
套接字或網(wǎng)絡(luò)接口進(jìn)行通信。另一個(gè) Docker Client 是 Docker Compose(允許我們將一組容器組成的應(yīng)用程序)
Docker 的架構(gòu)我們不需要過于關(guān)注,因?yàn)橐话銇碚f Docker 的 Client 和 Docker 守護(hù)進(jìn)程都是在同一臺(tái)服務(wù)器上運(yùn)行。
2.Docker 三大核心
這里要說的 Docker 三大核心,分別是 image
鏡像,container
容器,repository
倉(cāng)庫(kù);這可以說是 Docker 最重要的部分。
1)鏡像
Docker 鏡像是 Docker 容器運(yùn)行時(shí)的只讀模板,鏡像可以用來創(chuàng)建 Docker 容器(每一個(gè)鏡像都由一系列的層組成)
2)容器
Docker 主要就是利用容器來運(yùn)行應(yīng)用,一個(gè) Docker 容器內(nèi)可以說包含了某個(gè)應(yīng)用運(yùn)行所需要的環(huán)境。每一個(gè) Docker 容器都是從鏡像創(chuàng)建出來的??梢哉f容器就是鏡像創(chuàng)建的運(yùn)行實(shí)例,它可以被啟動(dòng),停止,刪除等。而且每個(gè)容器都是互相隔離的,保證安全的平臺(tái)。
3)倉(cāng)庫(kù)
Docker 倉(cāng)庫(kù)主要就是 用來集中保存鏡像的地方,當(dāng)我們創(chuàng)建了自己的鏡像后,可以使用 push
命令將它上傳到公共倉(cāng)庫(kù)(Public)或者私用倉(cāng)庫(kù)(Private),這樣的好處是,當(dāng)我們需要在另外的服務(wù)器上使用這個(gè)鏡像時(shí),可以直接從倉(cāng)庫(kù)進(jìn)行拉?。ㄋ俣认鄬?duì)較快)
二、Docker 安裝
準(zhǔn)備工作:
主機(jī)名 | 操作系統(tǒng) | IP 地址 | 軟件包 |
---|---|---|---|
Docker | CentOS 7.x | 192.168.1.4 | docker-ce-19.03.12 docker-ce-cli-19.03.12 |
1.下載 Docker 軟件包
1)安裝基礎(chǔ)包
[root@Docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
2)配置 Docker 的 yum 源
[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
3)安裝 Docker
我們可以使用 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
4)啟動(dòng) Docker 并驗(yàn)證
[root@Docker ~]# systemctl enable docker --now # 配置開機(jī)自啟并啟動(dòng) [root@Docker ~]# docker version # 查看 Docker 版本
5)配置 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
2.Docker 基礎(chǔ)命令介紹
下面我們主要介紹鏡像和容器相關(guān)的命令,因?yàn)閭}(cāng)庫(kù)相關(guān)命令不是很多,也就是 pull
push
等命令。
1)鏡像相關(guān)命令
1)查看當(dāng)前 Docker 的所有鏡像
// 因?yàn)槲覀兊?Docker 是剛安裝的. 所以沒有顯示任何鏡像 [root@Docker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
上面輸出結(jié)果分別是:鏡像名、鏡像對(duì)應(yīng)的標(biāo)簽、鏡像 ID 號(hào)、創(chuàng)建時(shí)間、鏡像大小。
2)查看 Docker 倉(cāng)庫(kù)中的 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 倉(cāng)庫(kù)中的鏡像,上面輸出結(jié)果分別是:鏡像名、描述信息、標(biāo)星、官方鏡像、自動(dòng)構(gòu)建。
3)拉取 busybox
鏡像
[root@Docker ~]# docker pull busybox:1.28.4 # 指定鏡像版本號(hào)拉取 (latest 表示最新版) 1.28.4: Pulling from library/busybox # 從這個(gè)倉(cāng)庫(kù)進(jìn)行拉取 07a152489297: Pull complete # 拉取完成 Digest: sha256:141c253bc4c3fd0a201d32dc1f493bcf3fff003b6df416dea4f41046e0f37d47 # 這就是鏡像的層 (也算是個(gè)標(biāo)識(shí)符) Status: Downloaded newer image for busybox:1.28.4 # 下載的新鏡像名稱和版本號(hào) docker.io/library/busybox:1.28.4 # 完整倉(cāng)庫(kù)地址
4)給鏡像進(jìn)行打標(biāo)簽(類似于別名操作)
[root@Docker ~]# docker tag busybox:1.28.4 testbusybox:test
tag
命令在有些時(shí)候還是蠻關(guān)鍵的,比如說我們要拉取的鏡像在國(guó)外,但是由于網(wǎng)絡(luò)原因,導(dǎo)致我們無法進(jìn)行拉取,此時(shí)我們可以在國(guó)內(nèi)的鏡像倉(cāng)庫(kù)拉取個(gè)同樣的鏡像,然后來使用 tag
命令來進(jìn)行打標(biāo)簽操作,改成要拉取國(guó)外鏡像的名稱即可。
5)將 busybox
鏡像導(dǎo)出
[root@Docker ~]# docker save -o busybox.tgz busybox:1.28.4
6)將 busybox
鏡像導(dǎo)入
[root@Docker ~]# docker load -i busybox.tgz
docker rmi
:通過鏡像名進(jìn)行刪除(加上 -f
可以實(shí)現(xiàn)基于鏡像 ID 刪除)
2)容器相關(guān)命令
1)創(chuàng)建一個(gè)容器
[root@Docker ~]# docker create -it --name busybox busybox:1.28.4 /bin/sh
-i
:表示讓容器的輸入保持打開;
-t
:表示給容器分配一個(gè)偽終端(就是我們后面加的 /bin/bash
)
docker ps -a
:表示查看所有運(yùn)行的容器(不管容器處于任何狀態(tài),都會(huì)進(jìn)行顯示)
2)啟動(dòng)一個(gè)容器
[root@Docker ~]# docker start busybox[root@Docker ~]# docker ps# 查看當(dāng)前處于運(yùn)行狀態(tài)的容器
當(dāng)我們要關(guān)閉容器時(shí),可以使用 stop
;重啟時(shí),可以使用 restart
命令來進(jìn)行操作。
3)刪除容器
[root@Docker ~]# docker stop busybox [root@Docker ~]# docker rm busybox # 我們可以通過容器名或者容器 ID 來進(jìn)行刪除
4)直接運(yùn)行容器
[root@Docker ~]# docker run -d --name busybox busybox:1.28.4 /bin/sh
docker exec -it busybox /bin/sh
命令的作用就是可以使我們進(jìn)入容器內(nèi)。
3.使用 Docker 實(shí)現(xiàn) Nginx 網(wǎng)站
[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
:指定容器運(yùn)行時(shí)的端口(前面是宿主機(jī)端口,后面是容器內(nèi)端口;-P
這單個(gè)字母是用來讓容器實(shí)現(xiàn) 隨機(jī)端口映射 的)
-v
:指定數(shù)據(jù)卷,相當(dāng)于是掛載命令,我們可以將宿主機(jī)的目錄掛載到容器內(nèi)(可以增加多個(gè) -v
來配置多個(gè)數(shù)據(jù)卷)
以上就是Docker容器鏡像相關(guān)命令基本介紹與使用的詳細(xì)內(nèi)容,更多關(guān)于Docker容器鏡像命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
docker 的java編譯環(huán)境構(gòu)建詳細(xì)介紹
這篇文章主要介紹了docker 的java編譯環(huán)境構(gòu)建詳細(xì)介紹的相關(guān)資料,具有一定的參考價(jià)值,需要的朋友可以參考下2016-11-11數(shù)據(jù)卷(Data Volumes)及dockefile詳解
在生產(chǎn)環(huán)境中使用Docker,往往需要對(duì)數(shù)據(jù)進(jìn)行持久化,或者需要在多個(gè)容器之間進(jìn)行數(shù)據(jù)共享,這必然涉及容器的數(shù)據(jù)管理操作,今天給大家介紹下數(shù)據(jù)卷(Data Volumes)及dockefile的相關(guān)知識(shí),感興趣的朋友一起看看吧2023-01-01docker-compose創(chuàng)建網(wǎng)橋,添加子網(wǎng),刪除網(wǎng)卡的實(shí)現(xiàn)
這篇文章主要介紹了docker-compose創(chuàng)建網(wǎng)橋,添加子網(wǎng),刪除網(wǎng)卡的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Docker鏡像的遷移與備份及Dockerflie 使用方法詳解
遷移和備份主要有三個(gè)操作命令將容器保存為鏡像、備份鏡像(將鏡像導(dǎo)出為一個(gè)文件)、鏡像的遷移與恢復(fù),這篇文章主要介紹了Docker鏡像的遷移與備份、Dockerflie 使用方法,需要的朋友可以參考下2022-07-07