日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何在 CentOS 7上安装和使用 Docker Compose

發(fā)布時(shí)間:2023/12/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在 CentOS 7上安装和使用 Docker Compose 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到教程。

?

介紹

Docker是一個(gè)很好的工具,但要真正充分利用它的潛力,最好是應(yīng)用程序的每個(gè)組件都在它自己的容器中運(yùn)行。對于包含大量組件的復(fù)雜應(yīng)用程序,編排所有容器以便一起啟動(dòng)和關(guān)閉(更不用說彼此交談)可能很快變得笨拙。

Docker社區(qū)提出了一種名為Fig的流行解決方案,該解決方案允許您使用單個(gè)YAML文件編排所有Docker容器和配置。這變得非常流行,以至于Docker團(tuán)隊(duì)最終決定根據(jù)Fig的源代碼制作他們自己的版本。他們稱之為Docker Compose。簡而言之,它使處理Docker容器的編排流程(如啟動(dòng),關(guān)閉和設(shè)置內(nèi)部容器鏈接和卷)非常容易。

在本文的最后,您將安裝Docker和Docker Compose,并對Docker Compose的工作原理有一個(gè)基本的了解。

?

Docker和Docker撰寫概念

使用Docker Compose需要將一大堆不同的Docker概念組合在一起,因此在開始之前,讓我們花一些時(shí)間來回顧一下涉及的各種概念。如果您已經(jīng)熟悉卷,鏈接和端口轉(zhuǎn)發(fā)等Docker概念,那么您可能需要繼續(xù)并跳到下一節(jié)。

?

Docker圖像

每個(gè)Docker容器都是Docker鏡像的本地實(shí)例。您可以將Docker鏡像視為完整的Linux安裝。通常,最小安裝僅包含運(yùn)行映像所需的最少數(shù)量的軟件包。這些映像使用主機(jī)系統(tǒng)的內(nèi)核,但由于它們在Docker容器內(nèi)運(yùn)行,只能看到自己的文件系統(tǒng),所以完全可以在Ubuntu主機(jī)上運(yùn)行CentOS等發(fā)行版(反之亦然)。

大多數(shù)Docker鏡像都是通過由Docker團(tuán)隊(duì)維護(hù)的Docker Hub進(jìn)行分發(fā)的。大多數(shù)流行的開源項(xiàng)目都有相應(yīng)的鏡像上傳到Docker Registry,您可以使用它來部署軟件。在可能的情況下,最好是抓住“官方”圖片,因?yàn)镈ocker團(tuán)隊(duì)保證他們遵循Docker最佳實(shí)踐。

?

Docker鏡像之間的通信

默認(rèn)情況下,Docker容器與主機(jī)隔離,這意味著默認(rèn)情況下,主機(jī)不能訪問Docker容器內(nèi)的文件系統(tǒng),也不能通過網(wǎng)絡(luò)與其通信。不用說,這使默認(rèn)情況下很難配置和處理在Docker容器內(nèi)運(yùn)行的映像。

Docker有三種主要的解決方法。第一個(gè)也是最常見的是讓Docker指定將在Docker容器中設(shè)置的環(huán)境變量。在Docker容器中運(yùn)行的代碼將在啟動(dòng)時(shí)檢查這些環(huán)境變量的值,并使用它們來正確配置它自己。

另一個(gè)常用的方法是Docker數(shù)據(jù)量。Docker卷有兩種風(fēng)格 - 內(nèi)部和共享。

指定內(nèi)部卷意味著對于您為特定Docker容器指定的文件夾,當(dāng)容器被移除時(shí),數(shù)據(jù)將被保留。例如,如果你想確保你的日志文件掛在你的周圍,你可以指定一個(gè)內(nèi)部/var/log卷。

共享卷將Docker容器中的文件夾映射到主機(jī)上的文件夾中。這使您可以輕松地在Docker容器和主機(jī)之間共享文件,我們將在Docker數(shù)據(jù)卷文章中探討這些文件。

與Docker容器進(jìn)行通信的第三種方式是通過網(wǎng)絡(luò)進(jìn)行通信。Docker允許通過links端口轉(zhuǎn)發(fā)實(shí)現(xiàn)不同Docker容器之間的通信,允許您將端口從Docker容器內(nèi)部轉(zhuǎn)發(fā)到主機(jī)服務(wù)器上的端口。例如,您可以創(chuàng)建一個(gè)鏈接來允許您的WordPress和MariaDB Docker容器相互交談,并通過端口轉(zhuǎn)發(fā)將WordPress發(fā)布到外部世界,以便用戶可以連接到它。

?

先決條件

要按照這篇文章,您將需要以下內(nèi)容:

  • CentOS 7 Droplet
  • 具有sudo權(quán)限的非root用戶(有關(guān)詳細(xì)信息,請參閱CentOS 7上的初始服務(wù)器設(shè)置)

第1步 - 安裝Docker

首先,如果你還沒有安裝Docker。安裝Docker最快的方法是下載并安裝他們的安裝腳本(系統(tǒng)會提示您輸入sudo密碼)。

  • wget -qO- https://get.docker.com/ | sh

上述命令下載并執(zhí)行由Docker團(tuán)隊(duì)編寫的小型安裝腳本。如果您不信任第三方腳本或想了解腳本的更多細(xì)節(jié),請查看DigitalOcean Docker教程或Docker自己的安裝文檔中的說明。

如果您的用戶配置不正確,使用Docker會很痛苦,因此請使用docker以下命令將您的用戶添加到組中。

sudo usermod -aG docker $(whoami)

注銷并從服務(wù)器登錄以激活您的新組。

設(shè)置Docker在啟動(dòng)時(shí)自動(dòng)啟動(dòng):

sudo systemctl enable docker.service

最后,啟動(dòng)Docker服務(wù):

sudo systemctl start docker.service

注意:要了解有關(guān)如何使用Docker的更多信息,請閱讀如何安裝和使用Docker:入門指南中的如何使用Docker部分。

?

第2步 - 安裝Docker撰寫

現(xiàn)在您已經(jīng)安裝了Docker,我們繼續(xù)并安裝Docker Compose。首先,安裝python-pip為先決條件:

  • sudo yum install epel-release
  • sudo yum install -y python-pip

然后你可以安裝Docker Compose:

  • sudo pip install docker-compose

您還需要在CentOS 7上升級您的Python軟件包docker-compose才能成功運(yùn)行:

  • sudo yum upgrade python*

第3步 - 使用Docker Compose運(yùn)行容器

公共Docker注冊表Docker Hub包含一個(gè)簡單的Hello World圖像。現(xiàn)在我們安裝了Docker Compose,讓我們用這個(gè)非常簡單的例子來測試它。

首先,為我們的YAML文件創(chuàng)建一個(gè)目錄:

  • mkdir hello-world

然后轉(zhuǎn)到目錄:

  • cd hello-world

現(xiàn)在使用您最喜歡的文本編輯器(我們將使用nano)創(chuàng)建YAML文件:

  • nano docker-compose.yml

將以下內(nèi)容放入文件中,保存文件并退出文本編輯器:

  • my-test:
  • image: hello-world
  • 第一行將用作容器名稱的一部分。第二行指定用于創(chuàng)建容器的圖像。該圖片將從官方Docker Hub存儲庫下載。

    仍然在~/hello-world目錄中時(shí),執(zhí)行以下命令來創(chuàng)建容器:

    • docker-compose up

    輸出應(yīng)該從以下開始:

    Output of docker-compose up

    Creating helloworld_my-test_1... Attaching to helloworld_my-test_1 my-test_1 | my-test_1 | Hello from Docker. my-test_1 | This message shows that your installation appears to be working correctly. my-test_1 |

    然后輸出解釋了Docker正在做什么:

  • Docker客戶端聯(lián)系了Docker守護(hù)進(jìn)程。
  • Docker守護(hù)進(jìn)程從Docker Hub中提取“hello-world”圖像。
  • Docker守護(hù)進(jìn)程從該映像創(chuàng)建了一個(gè)新的容器,該容器運(yùn)行可執(zhí)行文件,生成您當(dāng)前正在閱讀的輸出。
  • Docker守護(hù)進(jìn)程將輸出流式傳輸?shù)紻ocker客戶端,并將其發(fā)送到您的終端。
  • 如果進(jìn)程沒有自行退出,請按CTRL-C。

    這個(gè)簡單的測試并未顯示Docker Compose的主要優(yōu)點(diǎn)之一 - 能夠同時(shí)上下拖放一組Docker容器。該如何與碼頭工人撰寫Ubuntu上安裝WordPress和phpMyAdmin的14.04文章展示了如何使用泊塢窗撰寫運(yùn)行三個(gè)容器作為一個(gè)應(yīng)用程序組。它是為Ubuntu 14.04編寫的,但是這些步驟可以很容易地適用于CentOS 7。

    ?

    第4步 - 學(xué)習(xí)Docker組合命令

    我們來看看該docker-compose工具支持的命令。

    該docker-compose命令在每個(gè)目錄的基礎(chǔ)上工作。您可以在一臺機(jī)器上運(yùn)行多組Docker容器 - 只需為每個(gè)容器創(chuàng)建一個(gè)目錄,為其目錄中的每個(gè)容器創(chuàng)建一個(gè)docker-compose.yml文件。

    到目前為止,我們一直docker-compose up在自己運(yùn)行并用CTRL-C它來關(guān)閉它。這允許調(diào)試消息顯示在終端窗口中。這并不理想,但在生產(chǎn)環(huán)境中運(yùn)行時(shí),您會希望docker-compose更像一項(xiàng)服務(wù)。一個(gè)簡單的方法就是-d在你up的會話中添加選項(xiàng):

    • docker-compose up -d

    docker-compose?現(xiàn)在將分叉到后臺。

    要顯示您的Docker容器組(已停止并且當(dāng)前正在運(yùn)行),請使用以下命令:

    • docker-compose ps

    例如,以下顯示helloworld_my-test_1容器已停止:

    Output of `docker-compose ps`

    Name Command State Ports ----------------------------------------------- helloworld_my-test_1 /hello?Exit?0

    正在運(yùn)行的容器將顯示Up狀態(tài):

    Output of `docker-compose ps`

    Name Command State Ports --------------------------------------------------------------- nginx_nginx_1 nginx -g daemon off;?Up?443/tcp, 80/tcp

    要停止應(yīng)用程序組的所有正在運(yùn)行的Docker容器,請?jiān)谂cdocker-compose.yml用于啟動(dòng)Docker組的文件相同的目錄中發(fā)出以下命令:

    • docker-compose stop

    注意:?docker-compose kill如果您需要更強(qiáng)有力地關(guān)閉它,也可用。

    在某些情況下,Docker容器會將其舊信息存儲在內(nèi)部卷中。如果您想從頭開始,可以使用該rm命令來完全刪除組成您的容器組的所有容器:

    • docker-compose rm

    如果您嘗試從包含Docker容器和.yml文件的目錄以外的目錄執(zhí)行這些命令中的任何一個(gè),它將會發(fā)出抱怨并且不會顯示您的容器:

    Output from wrong directory

    Can't find a suitable configuration file in this directory or any parent. Are you in the right directory? Supported filenames: docker-compose.yml, docker-compose.yaml, fig.yml, fig.yaml

    ?

    第5步 - 訪問Docker容器文件系統(tǒng)(可選)

    如果您需要在容器內(nèi)的命令提示符下工作,則可以使用該?docker exec命令。

    在世界,你好!示例在運(yùn)行后退出,因此我們需要啟動(dòng)一個(gè)將繼續(xù)運(yùn)行的容器,以便我們可以使用docker exec該容器訪問容器的文件系統(tǒng)。我們來看看Docker Hub?的Nginx鏡像。

    為它創(chuàng)建一個(gè)新目錄并更改為它:

    • mkdir ~/nginx && cd $_

    docker-compose.yml在我們的新目錄中創(chuàng)建一個(gè)文件:

    • nano docker-compose.yml

    并粘貼在以下內(nèi)容中:

  • nginx:
  • image: nginx
  • 保存該文件并退出。我們只需要使用以下命令作為后臺進(jìn)程啟動(dòng)Nginx容器:

    • docker-compose up -d

    Nginx的圖像將被下載,然后容器將在后臺啟動(dòng)。

    現(xiàn)在我們需要CONTAINER ID容器。所有正在運(yùn)行的容器的列表:

    • docker ps

    您將看到類似于以下內(nèi)容的內(nèi)容:

    Output of `docker ps`

    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e90e12f70418 nginx "nginx -g 'daemon off" 6 minutes ago Up 5 minutes 80/tcp, 443/tcp nginx_nginx_1

    注意:只有正在運(yùn)行的容器與該docker ps命令一起列出。

    如果我們想對這個(gè)容器中的文件系統(tǒng)進(jìn)行更改,我們將使用它的ID(在本例中e90e12f70418)并用docker exec它在容器中啟動(dòng)一個(gè)shell:

    • docker exec -it?e90e12f70418?/bin/bash

    該-t選項(xiàng)打開一個(gè)終端,該-i選項(xiàng)使其交互。這些/bin/bash選項(xiàng)為正在運(yùn)行的容器打開一個(gè)bash shell。一定要使用您的容器的ID。

    您會看到類似于以下內(nèi)容的容器的bash提示符:

    root@e90e12f70418:/#

    從這里,你可以從命令提示符下工作。但請記住,除非您位于保存為數(shù)據(jù)卷一部分的目錄中,否則只要容器重新啟動(dòng),您的更改就會消失。另一個(gè)需要注意的是,大多數(shù)Docker鏡像都是使用非常少量的Linux安裝創(chuàng)建的,因此您習(xí)慣使用的某些命令行工具和工具可能不存在。

    ?

    結(jié)論

    太棒了,這樣就涵蓋了Docker Compose的基本概念以及如何讓它安裝并運(yùn)行。退房的部署Wordpress和PHPMyAdmin的與碼頭工人撰寫在Ubuntu 14.04教程如何部署與碼頭工人撰寫的應(yīng)用程序更復(fù)雜的例子。它是為Ubuntu 14.04編寫的,但是這些步驟可以很容易地適用于CentOS 7。

    有關(guān)該docker-compose.yml文件的完整配置選項(xiàng)列表,請參閱撰寫文件參考。

    ?

    轉(zhuǎn)自:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-centos-7#top

    ?

    總結(jié)

    以上是生活随笔為你收集整理的如何在 CentOS 7上安装和使用 Docker Compose的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。