溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker及Docker-Compose的實(shí)例用法

發(fā)布時(shí)間:2020-10-22 16:20:40 來源:腳本之家 閱讀:186 作者:張東冬 欄目:服務(wù)器

Docker是一個(gè)開源的容器引擎,它有助于更快地交付應(yīng)用。方便快捷已經(jīng)是 Docker的最大優(yōu)勢(shì),過去需要用數(shù)天乃至數(shù)周的任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。

架構(gòu)

Docker及Docker-Compose的實(shí)例用法

  • Docker daemon( Docker守護(hù)進(jìn)程):Docker daemon是一個(gè)運(yùn)行在宿主機(jī)( DOCKER-HOST)的后臺(tái)進(jìn)程??赏ㄟ^ Docker客戶端與之通信。
  • Client( Docker客戶端):Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標(biāo)識(shí),并與 Docker daemon通信。圖中, docker build等都是 Docker的相關(guān)命令。
  • Images( Docker鏡像):Docker鏡像是一個(gè)只讀模板,它包含創(chuàng)建 Docker容器的說明。它和系統(tǒng)安裝光盤有點(diǎn)像,使用系統(tǒng)安裝光盤可以安裝系統(tǒng),同理,使用Docker鏡像可以運(yùn)行 Docker鏡像中的程序。
  • Container(容器):容器是鏡像的可運(yùn)行實(shí)例。鏡像和容器的關(guān)系有點(diǎn)類似于面向?qū)ο笾?,類和?duì)象的關(guān)系。可通過 Docker API或者 CLI命令來啟停、移動(dòng)、刪除容器。
  • Registry:Docker Registry是一個(gè)集中存儲(chǔ)與分發(fā)鏡像的服務(wù)。構(gòu)建完 Docker鏡像后,就可在當(dāng)前宿主機(jī)上運(yùn)行。但如果想要在其他機(jī)器上運(yùn)行這個(gè)鏡像,就需要手動(dòng)復(fù)制。此時(shí)可借助Docker Registry來避免鏡像的手動(dòng)復(fù)制。一個(gè) Docker Registry可包含多個(gè) Docker倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)可包含多個(gè)鏡像標(biāo)簽,每個(gè)標(biāo)簽對(duì)應(yīng)一個(gè) Docker鏡像。這跟 Maven的倉(cāng)庫(kù)有點(diǎn)類似,如果把 Docker Registry比作Maven倉(cāng)庫(kù)的話,那么 Docker倉(cāng)庫(kù)就可理解為某jar包的路徑,而鏡像標(biāo)簽則可理解為jar包的版本號(hào)。Docker Registry可分為公有Docker Registry和私有Docker Registry。 最常用的DockerRegistry莫過于官網(wǎng)的Docker Hub, 這也是默認(rèn)的Docker Registry。 Docker Hub上存放著大量?jī)?yōu)秀的鏡像, 我們可使用Docker命令下載并使用。

安裝

按照菜鳥的步驟,使用yum安裝即可。

常用命令

鏡像相關(guān)

  • docker search java:在Docker Hub(或阿里鏡像)倉(cāng)庫(kù)中搜索關(guān)鍵字(如java)的鏡像
  • docker pull java:8:從倉(cāng)庫(kù)中下載鏡像,若要指定版本,則要在冒號(hào)后指定
  • docker images:列出已經(jīng)下載的鏡像
  • docker rmi java:刪除本地鏡像
  • docker build:構(gòu)建鏡像

容器相關(guān)

  • docker run -d -p 91:80 nginx :在后臺(tái)運(yùn)行nginx,若沒有鏡像則先下載,并將容器的80端口映射為宿主機(jī)的91端口。
  • -d:后臺(tái)運(yùn)行
  • -P:隨機(jī)端口映射
  • -p:指定端口映射
  • -net:網(wǎng)絡(luò)模式
  • docker ps:列出運(yùn)行中的容器
  • docker ps -a :列出所有的容器
  • docker stop 容器id:停止容器
  • docker kill 容器id:強(qiáng)制停止容器
  • docker start 容器id:?jiǎn)?dòng)已停止的容器
  • docker inspect 容器id:查看容器的所有信息
  • docker container logs 容器id:查看容器日志
  • docker top 容器id:查看容器里的進(jìn)程
  • docker exec -it 容器id /bin/bash:進(jìn)入容器
  • exit:退出容器
  • docker rm 容器id:刪除已停止的容器
  • docker rm -f 容器id:刪除正在運(yùn)行的容器

所有命令

  • docker
  • docker COMMAND --help

構(gòu)建鏡像

  • 確定鏡像模板:如java、nginx
  • 新建Dockerfile文件
  • 使用Dockerfile的指令完善Dockerfile的內(nèi)容
  • 在Dockerfile文件的所在路徑執(zhí)行docker build -t imageName:tag .,-t指定鏡像名稱,末尾的點(diǎn)標(biāo)識(shí)Dockerfile文件的路徑
  • 執(zhí)行docker run -d -p 92:80 imageName:tag即可

Docker及Docker-Compose的實(shí)例用法

備注:RUN命令在 image 文件的構(gòu)建階段執(zhí)行,執(zhí)行結(jié)果都會(huì)打包進(jìn)入 image 文件;CMD命令則是在容器啟動(dòng)后執(zhí)行。另外,一個(gè) Dockerfile 可以包含多個(gè)RUN命令,但是只能有一個(gè)CMD命令。注意,指定了CMD命令以后,docker container run命令就不能附加命令了,否則它會(huì)覆蓋CMD命令。

Docker Compose

Docker Compose是 docker 提供的一個(gè)命令行工具,用來定義和運(yùn)行由多個(gè)容器組成的應(yīng)用。使用 compose,我們可以通過 YAML 文件聲明式的定義應(yīng)用程序的各個(gè)服務(wù),并由單個(gè)命令完成應(yīng)用的創(chuàng)建和啟動(dòng)。

以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),如果有任何補(bǔ)充可以聯(lián)系億速云小編。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI