日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2023/12/18 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在 CentOS 7上安装和使用 Docker Compose 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

?

介紹

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

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

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

?

Docker和Docker撰寫概念

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

?

Docker圖像

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

大多數Docker鏡像都是通過由Docker團隊維護的Docker Hub進行分發的。大多數流行的開源項目都有相應的鏡像上傳到Docker Registry,您可以使用它來部署軟件。在可能的情況下,最好是抓住“官方”圖片,因為Docker團隊保證他們遵循Docker最佳實踐。

?

Docker鏡像之間的通信

默認情況下,Docker容器與主機隔離,這意味著默認情況下,主機不能訪問Docker容器內的文件系統,也不能通過網絡與其通信。不用說,這使默認情況下很難配置和處理在Docker容器內運行的映像。

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

另一個常用的方法是Docker數據量。Docker卷有兩種風格 - 內部和共享。

指定內部卷意味著對于您為特定Docker容器指定的文件夾,當容器被移除時,數據將被保留。例如,如果你想確保你的日志文件掛在你的周圍,你可以指定一個內部/var/log卷。

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

與Docker容器進行通信的第三種方式是通過網絡進行通信。Docker允許通過links端口轉發實現不同Docker容器之間的通信,允許您將端口從Docker容器內部轉發到主機服務器上的端口。例如,您可以創建一個鏈接來允許您的WordPress和MariaDB Docker容器相互交談,并通過端口轉發將WordPress發布到外部世界,以便用戶可以連接到它。

?

先決條件

要按照這篇文章,您將需要以下內容:

  • CentOS 7 Droplet
  • 具有sudo權限的非root用戶(有關詳細信息,請參閱CentOS 7上的初始服務器設置)

第1步 - 安裝Docker

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

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

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

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

sudo usermod -aG docker $(whoami)

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

設置Docker在啟動時自動啟動:

sudo systemctl enable docker.service

最后,啟動Docker服務:

sudo systemctl start docker.service

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

?

第2步 - 安裝Docker撰寫

現在您已經安裝了Docker,我們繼續并安裝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才能成功運行:

  • sudo yum upgrade python*

第3步 - 使用Docker Compose運行容器

公共Docker注冊表Docker Hub包含一個簡單的Hello World圖像?,F在我們安裝了Docker Compose,讓我們用這個非常簡單的例子來測試它。

首先,為我們的YAML文件創建一個目錄:

  • mkdir hello-world

然后轉到目錄:

  • cd hello-world

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

  • nano docker-compose.yml

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

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

    仍然在~/hello-world目錄中時,執行以下命令來創建容器:

    • docker-compose up

    輸出應該從以下開始:

    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客戶端聯系了Docker守護進程。
  • Docker守護進程從Docker Hub中提取“hello-world”圖像。
  • Docker守護進程從該映像創建了一個新的容器,該容器運行可執行文件,生成您當前正在閱讀的輸出。
  • Docker守護進程將輸出流式傳輸到Docker客戶端,并將其發送到您的終端。
  • 如果進程沒有自行退出,請按CTRL-C。

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

    ?

    第4步 - 學習Docker組合命令

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

    該docker-compose命令在每個目錄的基礎上工作。您可以在一臺機器上運行多組Docker容器 - 只需為每個容器創建一個目錄,為其目錄中的每個容器創建一個docker-compose.yml文件。

    到目前為止,我們一直docker-compose up在自己運行并用CTRL-C它來關閉它。這允許調試消息顯示在終端窗口中。這并不理想,但在生產環境中運行時,您會希望docker-compose更像一項服務。一個簡單的方法就是-d在你up的會話中添加選項:

    • docker-compose up -d

    docker-compose?現在將分叉到后臺。

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

    • docker-compose ps

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

    Output of `docker-compose ps`

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

    正在運行的容器將顯示Up狀態:

    Output of `docker-compose ps`

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

    要停止應用程序組的所有正在運行的Docker容器,請在與docker-compose.yml用于啟動Docker組的文件相同的目錄中發出以下命令:

    • docker-compose stop

    注意:?docker-compose kill如果您需要更強有力地關閉它,也可用。

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

    • docker-compose rm

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

    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容器文件系統(可選)

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

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

    為它創建一個新目錄并更改為它:

    • mkdir ~/nginx && cd $_

    docker-compose.yml在我們的新目錄中創建一個文件:

    • nano docker-compose.yml

    并粘貼在以下內容中:

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

    • docker-compose up -d

    Nginx的圖像將被下載,然后容器將在后臺啟動。

    現在我們需要CONTAINER ID容器。所有正在運行的容器的列表:

    • docker ps

    您將看到類似于以下內容的內容:

    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

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

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

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

    該-t選項打開一個終端,該-i選項使其交互。這些/bin/bash選項為正在運行的容器打開一個bash shell。一定要使用您的容器的ID。

    您會看到類似于以下內容的容器的bash提示符:

    root@e90e12f70418:/#

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

    ?

    結論

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

    有關該docker-compose.yml文件的完整配置選項列表,請參閱撰寫文件參考。

    ?

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

    ?

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。