<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
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 容器都是從映象建立出來的。可以說容器就是映象建立的執行範例,它可以被啟動,停止,刪除等。而且每個容器都是互相隔離的,保證安全的平臺。
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容器映象相關命令基本介紹與使用的詳細內容,更多關於Docker容器映象命令的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45