天天看點

docker 部署_如何使用 Docker 部署容器一、您需要什麼?二、溫馨提示三、拉取鏡像四、部署容器五、分離模式六、通路運作中的容器

設想,為了推出一個網站,您不必從裸機安裝一個完整的伺服器。 而不是安裝作業系統,然後安裝伺服器軟體,然後部署精心設計的應用程式或站點,您可以簡單地在一個獨立的包中開發所有内容,并使用單個指令将其推出。

docker 部署_如何使用 Docker 部署容器一、您需要什麼?二、溫馨提示三、拉取鏡像四、部署容器五、分離模式六、通路運作中的容器

這是使用容器的衆多好處之一。它們使開發和部署周期變得異常高效。但是你如何部署這些容器?我想在這裡指導你完成這個過程。我們将專注于在Ubuntu Server 18.04上部署基本的NGINX Web伺服器作為容器。所有這一切都将在Docker的幫助下完成。

一、您需要什麼?

為了成功将NGINX部署為容器,您需要具備以下條件:

- 一個安裝了Docker的Ubuntu Server 18.04的運作執行個體。

- 一個docker 使用者組的成員使用者

是的,有了這兩部分,你就準備好了。

二、溫馨提示

您部署的每個容器都将基于從DockerHub中提取的鏡像。 您可以下拉單個鏡像并根據需要随時使用。 DockerHub上還有許多鏡像用于單個應用程式或平台。 以NGINX為例。 如果你在DockerHub上搜尋NGINX,你會得到大約56,172個條目。 這并不意味着每個條目都是您可以使用的可用圖像。

圖像命名如下:

例如,對于NGINX,您可能會找到一個名字為的鏡像:

bitwarden/nginx (a reverse proxy NGINX image)
           

或許你可能找到:

nginx/nginx-ingress (NGINX Ingress controller for Kubernetes)
           

您也看到了,有幾乎所有需要的鏡像。

目前,您隻需關注一個鏡像。 該圖像是NGINX的官方釋出版本。

三、拉取鏡像

在使用圖像之前,必須将其儲存在本地驅動器上。 有兩種方法可以做到這一點:

- 直接使用pull指令

- 間接地,在容器部署過程中。

要從DockerHub中拉取圖像,您将打開一個終端視窗并發出指令:

docker pull nginx
           

如果你想拉取Ingress圖像,該指令是:

docker pull nginx/nginx-ingress
           

當你拉取你需要的圖像之後,你可以使用指令确認是否存在:

docker images
           

上面的指令将列出你拉取的所有鏡像(圖A)。

docker 部署_如何使用 Docker 部署容器一、您需要什麼?二、溫馨提示三、拉取鏡像四、部署容器五、分離模式六、通路運作中的容器

圖A:NGINX和nginx / nginx都是可用鏡像。

拉取随意圖像時要謹慎。 為什麼? 因為你永遠不知道創造它們的原因。 容器可能包含惡意代碼,可能會對您的網絡或資料造成嚴重破壞。 是以,最好隻使用官方圖像(例如NGINX圖像)。

四、部署容器

現在該部署容器了, 如果您尚未拉取鏡像,則在部署階段将下拉所需要的鏡像。 由于我們拉取官方NGINX圖像,我們将使用它。

要部署容器,請使用docker指令,如下所示:

docker run --name NAME -p PORTS IMAGE
           

備注:

- NAME等于您要為容器提供的名稱(這可以是任何内容,例如nginx-webserver)。

- PORTS您要使用的端口(以NETWORK PORT:CONTAINER PORT形式)。

- IMAGE用于容器的圖像(例如nginx)。

是以,部署NGINX容器的基本指令是:

docker run --name nginx-webserver -p 80:80 nginx
           

容器将要部署,NGINX Web伺服器将在端口80上可用于本地網絡。但是,如果已在伺服器上使用端口80來部署容器,該怎麼辦? 您可以将其部署在網絡端口8080上,如下所示:

docker run --name nginx-webserver -p 8080:80 nginx
           

此時,您可能會看到下一個問題。 運作上述指令之一後,不傳回bash提示符(圖B)。

docker 部署_如何使用 Docker 部署容器一、您需要什麼?二、溫馨提示三、拉取鏡像四、部署容器五、分離模式六、通路運作中的容器

圖B:容器在通路NGINX驅動的站點時給我們回報資訊,但它沒有給我們提示符。

五、分離模式

你如何運作一個容器,并獲得你的bash提示? 為此,您必須以分離模式運作容器。 在此之前,您必須使用鍵盤組合[Ctrl] +終止目前容器。 該組合将傳回提示并殺死容器。

要确定容器是否運作,使用指令:

docker ps -a
           

将列出所有容器及其狀态(圖C)。

docker 部署_如何使用 Docker 部署容器一、您需要什麼?二、溫馨提示三、拉取鏡像四、部署容器五、分離模式六、通路運作中的容器

如果容器仍在運作,我們必須在同一端口部署另一個容器之前将其終止(否則端口會發生沖突,進而阻止容器部署)。 要殺死正在運作的容器,首先需要Container ID(随機字元串)。 發出docker ps -a指令時會顯示此字元串。 要終止正在運作的容器,使用指令:

docker stop CONTAINER_ID
           

其中CONTAINER_ID是相關容器的ID。

然後,您可以使用以下指令删除容器:

docker rm CONTAINER_ID
           

其中CONTAINER_ID是相關容器的ID。

請注意,您不必輸入完整的Container ID,字元串的前四個字元就足夠了。

現在,要以分離模式部署容器,指令是:

docker run --name nginx-webserver -p 80:80 -d nginx
           

這次你不僅會得到你的提示,而且Docker會為你顯示容器ID(圖D)。

docker 部署_如何使用 Docker 部署容器一、您需要什麼?二、溫馨提示三、拉取鏡像四、部署容器五、分離模式六、通路運作中的容器

圖D:我們的NGINX容器,以分離模式運作。

六、通路運作中的容器

如果你想在正在運作的容器上工作怎麼辦? 假設您想對NGINX進行更改甚至開始開發它将顯示的網站? 是以,您必須通路容器。 是以,您需要Container ID。 使用ID,發出指令:

docker exec -it CONTAINER_ID bash
           

其中CONTAINER_ID是容器的ID。

您現在應該處于運作容器提示符(圖E)中,您可以在其中開始處理NGINX伺服器。

docker 部署_如何使用 Docker 部署容器一、您需要什麼?二、溫馨提示三、拉取鏡像四、部署容器五、分離模式六、通路運作中的容器

圖E:NGINX容器提示,準備工作。

要退出容器,隻需鍵入指令exit。

七、比你想象的容易

希望到現在為止,您看到容器部署并不像您想象的那樣具有挑戰性。 在Docker的幫助下,您可以在幾分鐘内推出專業版的應用和服務。

原文連結:

https://thenewstack.io/how-to-deploy-a-container-with-docker
           

繼續閱讀