如何使用 Docker 部署容器

如何使用 Docker 部署容器

設想,為了推出一個網(wǎng)站,您不必從裸機安裝一個完整的服務器。 而不是安裝操作系統(tǒng),然后安裝服務器軟件,然后部署精心設計的應用程序或站點,您可以簡單地在一個獨立的包中開發(fā)所有內(nèi)容,并使用單個命令將其推出。

這是使用容器的眾多好處之一。

它們使開發(fā)和部署周期變得異常高效。但是你如何部署這些容器?我想在這里指導你完成這個過程。我們將專注于在Ubuntu Server 18.04上部署基本的NGINX Web服務器作為容器。所有這一切都將在Docker的幫助下完成。

為了成功將NGINX部署為容器,您需要具備以下條件: – 一個安裝了Docker的Ubuntu Server 18.04的運行實例。 – 一個docker 用戶組的成員用戶 是的,有了這兩部分,你就準備好了。 您部署的每個容器都將基于從DockerHub中提取的鏡像。

您可以下拉單個鏡像并根據(jù)需要隨時使用。 DockerHub上還有許多鏡像用于單個應用程序或平臺。 以NGINX為例。

如果你在DockerHub上搜索NGINX,你會得到大約56,172個條目。 這并不意味著每個條目都是您可以使用的可用圖像。 圖像命名如下: 例如,對于NGINX,您可能會找到一個名字為的鏡像: 或許你可能找到: 您也看到了,有幾乎所有需要的鏡像。

在使用圖像之前,必須將其保存在本地驅(qū)動器上。 有兩種方法可以做到這一點: – 直接使用pull命令 – 間接地,在容器部署過程中。 要從DockerHub中拉取圖像,您將打開一個終端窗口并發(fā)出命令: 如果你想拉取Ingress圖像,該命令是: 當你拉取你需要的圖像之后,你可以使用命令確認是否存在: 上面的命令將列出你拉取的所有鏡像(圖A)。 拉取隨意圖像時要謹慎。

為什么? 因為你永遠不知道創(chuàng)造它們的原因。 容器可能包含惡意代碼,可能會對您的**或數(shù)據(jù)造成嚴重破壞。 因此,**只使用**圖像(例如NGINX圖像)。 現(xiàn)在該部署容器了, 如果您尚未拉取鏡像,則在部署階段將下拉所需要的鏡像。

由于我們拉取**NGINX圖像,我們將使用它。 要部署容器,請使用docker命令,如下所示: 備注: – NAME等于您要為容器提供的名稱(這可以是任何內(nèi)容,例如nginx-webserver)。 – PORTS您要使用的端口(以NETWORK PORT:CONTAINER PORT形式)。 – IMAGE用于容器的圖像(例如nginx)。

因此,部署NGINX容器的基本命令是: 容器將要部署,NGINX Web服務器將在端口80上可用于本地**。但是,如果已在服務器上使用端口80來部署容器,該怎么辦? 您可以將其部署在**端口8080上,如下所示: 此時,您可能會看到下一個問題。 運行上述命令之一后,不返回bash提示符(圖B)。

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

要確定容器是否運行,使用命令: 將列出所有容器及其狀態(tài)(圖C)。 如果容器仍在運行,我們必須在同一端口部署另一個容器之前將其終止(否則端口會發(fā)生沖突,從而阻止容器部署)。 要殺*正在運行的容器,首先需要Container ID(隨機字符串)。 發(fā)出docker ps -a命令時會顯示此字符串。

要終止正在運行的容器,使用命令: 其中CONTAINER_ID是相關容器的ID。 然后,您可以使用以下命令刪除容器: 其中CONTAINER_ID是相關容器的ID。 請注意,您不必輸入完整的Container ID,字符串的前四個字符就足夠了。

現(xiàn)在,要以分離模式部署容器,命令是: 這次你不僅會得到你的提示,而且Docker會為你顯示容器ID(圖D)。 如果你想在正在運行的容器上工作怎么辦? 假設您想對NGINX進行更改甚至開始開發(fā)它將顯示的網(wǎng)站? 因此,您必須訪問容器。 因此,您需要Container ID。 使用ID,發(fā)出命令: 其中CONTAINER_ID是容器的ID。

您現(xiàn)在應該處于運行容器提示符(圖E)中,您可以在其中開始處理NGINX服務器。 要退出容器,只需鍵入命令exit。 七、比你想象的容易 希望到現(xiàn)在為止,您看到容器部署并不像您想象的那樣具有挑戰(zhàn)性。

在Docker的幫助下,您可以在幾分鐘內(nèi)推出專業(yè)版的應用和服務。 原文鏈接:。

docker容器化部署技巧

1、dockerfile-maven-plugin為**版本,建議選用,邀請Dockerfile應與pom.xml處于同一目錄下 2、開發(fā)環(huán)境許配置DOCKER_HOST,配置方式如下: 1、編寫pom.xml(dockerfile-maven-plugins) 2、編寫pom.xml(docker-maven-plugins) 4、編寫Dockerfile存在在pom.xml同級目錄 5、打包發(fā)布遠程docker鏡像

docker如何使用自帶jdk部署docker

docker自帶jdk部署docker安裝方式:1、在dockerhub中,jdk和tomacat不用想就知道會有現(xiàn)成的打包好的鏡像,果斷使用(建議使用更新時間比較近的)。2、使用docker-pull將鏡像下載下來。

3、使用docker-run,name-tomacat(自定義的鏡像名)-p8080:8080-d-tomacat(鏡像名)來啟動tomacat,這個時候tomacat和jdk都搞定了。

4、使用docker-ps,查看啟動的鏡像,啟動成功后即可在訪問ip:8080f訪問到tomacat服務啟動后的主頁。

如何在Docker中設定Go并部署應用

如何在Docker中設定Go并部署應用 步驟一 - 建立Dockerfile 如下的Dockerfile可以滿足以上的要求: **FROM** golang:1.6 *# Install beego and the bee dev tool* **RUN** go get github./astaxie/beego && go get github./beego/bee *# Expose the application on port 8080* **EXPOSE** 8080 *# Set the entry point of the container to the bee mand that runs the* *# application and watches for changes* **CMD** [\”bee\”, \”run\”] **行, FROM golang:1.6 將Go的**映像檔案作為基礎映像。該映像檔案預安裝了 Go 1.6 . 該映像已經(jīng)把 $GOPATH 的值設定到了 /go 。

所有安裝在 /go/src 中的包將能夠被go命令訪問。

第二行, RUN go get github./astaxie/beego && go get github./beego/bee 安裝 beego 包和 bee 工具。 beego 包將在應用程式中使用。 bee 工具用語在開發(fā)中再現(xiàn)地重新載入我們的程式碼。 第三行, EXPOSE 8080 在開發(fā)主機上利用容器為應用程式開放8080埠。

**一行, CMD [\”bee\”, \”run\”] 使用bee命令啟動應用程式的線上重新載入。 步驟二 - 構建image 一旦建立了Docker file,執(zhí)行如下的命令來建立image: docker build -t ma-image . 執(zhí)行以上的命令將建立名為ma-image的image。該image現(xiàn)在可以用于使用該應用程式的任何人。

這將確保這個團隊能夠使用一個統(tǒng)一的開發(fā)環(huán)境。 為了檢視系統(tǒng)上的image列表,執(zhí)行如下的命令: docker images 這行該命令將輸出與以下類似的內(nèi)容: REPOSITORY TAG IMAGE ID CREATED SIZE ma-image latest 8d53aa0dd0cb 31 seconds ago 784.7 MB golang 1.6 22a6ecf1f7 5 days ago 743.9 MB 注意image的確切名字和編號可能不同,但是,應該至少看到列表中有 golang 和 ma-image image。 步驟三 - 執(zhí)行容器 一旦 ma-image 已經(jīng)完成,可以使用以下的命令啟動一個容器: docker run -it –rm –name ma-instance -p 8080:8080 \\ -v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image 步驟一 – 建立Dockerfile 如下的Dockerfile可以滿足以上的要求: **FROM** golang:1.6 *# Install beego and the bee dev tool* **RUN** go get … 如何在idea中設定tomcat熱部署 一、配置Project Structure 1 先找到軟體上如圖所示的圖示,開啟Project Structure. 2 【配置project】 這里需要注意四個地方。

1.專案名稱,可以隨便起。 2.New一個jdk的安裝路徑。 3.選一個6.0的介面。

4.專案的classes路徑。 3 【配置modules】 先配置Source。點選“+”,可以增加專案。欄目中會出現(xiàn)專案,右側也會出現(xiàn)專案。

將游標移動到專案的src上,點選上面的source按鈕,進行專案的src的新增,右邊會顯示出來的。 4 【配置modules】 配置Path路徑。 這里需要注意的就一個,配置專案的classes目錄百科,提供輸出的路徑。 5 【配置modules】 配置dependence。

這里載入的是jar包。點選右邊的“+”。 1.jdk的路徑。 2.專案lib路徑。

3.新增Tomcat的jar包。要選library格式。(jsp-api.jar ,servlet-api.jar) END 二、配置Tomcat 點選如圖所示的地方,進行進入Tomcat配置頁面。

進入頁面后,點選右側的“+”。 彈出頁面后,按照如圖順序找到,tomcat—》Local。 按照如圖方式進行配置。

1代表名稱,給配置的Tomcat取名稱。 2代表配置Tomcat的安裝路徑。 3代表Tomcat伺服器啟動后,預設開啟的瀏覽器,根據(jù)自己習慣開啟。 4代表瀏覽器顯示路徑,根據(jù)自己喜好可以改。

5和6都是預設的,不需要修改。 配置Deployment,webapp為專案的webapp,后面的名字可以自己定義,別忘了加“/”. 首先開啟idea開發(fā)工具,open一個java的web專案,然后點選Run選單,選擇Edit Configurations…選單,開啟Run/Debug Configurations對話方塊 如何在idea中設定tomcat熱部署 點選對話方塊左上角的加號,選擇Tomcat Server,再選擇Local子選單 如何在idea中設定tomcat熱部署 設定個名稱,如果之前沒有關聯(lián)過tomcat的,需要先關聯(lián)一個tomcat,關聯(lián)tomcat選擇Application server的Configure按鈕 如何在idea中設定tomcat熱部署 Application Servers對話方塊開啟之后,點選加號,設定一個下載好的tomcat目錄路徑就可以關聯(lián)上 如何在idea中設定tomcat熱部署 在Run/Debug Configurations對話方塊中,選擇Deployment選項卡,對需要部署的專案檔案做設定,點選加號選擇Artifact,然后選擇war exploded方式,這種方式是以資料夾方式部署的,而war是以war包的方式,exploded方式支援熱部署,開發(fā)的時候選擇exploded方式就可以了 如何在idea中設定tomcat熱部署 新增完Artifact檔案之后,可以設定下Application context,不設定的話,預設應用路徑為根目錄 如何在idea中設定tomcat熱部署 然后回到Server選項卡,設定On Update action和On frame detectivation選項,都設定為Update classes and resources,表示classes檔案和資原始檔都更新 如何在idea中設定tomcat熱部署 8 如果只設置On Update action選項,則需要每次自己手動點選更新,設定了On frame detectivation,會監(jiān)測視窗,idea視窗發(fā)生切換則自動更新檔案 商業(yè)版有這個功能,社群版的功能比較雞肋,只能reload classes 從上面的圖中可以看到,reload class 是在pile之后的,而Intellij沒有類似儲存java檔案就自動pile的功能,需要手動觸發(fā)下pile, ctrl+shift+f9 就會在左下角看到綠色的提… 如何在docker中部署springboot的web應用 **步:搭建springboot的web應用,可在CMD命令列中通過mvn install命令將應用打成jar包:如demo-0.0.1-SNAPSHOT.jar 第二步:將jar包copy到centos檔案系統(tǒng)中,指定目錄示例為:/usr/local/demo-0.0.1-SNAPSHOT.jar 第三步:構建docker映象:此處以docker build方式構建 首先你要明白docker是什么,其實他就和虛擬機器一樣,只是比虛擬機器占用資源更小,使用更方便,要部署應用,你可以先拉取一個LINUX的系統(tǒng)下來,然后用docker基于拉取的linux映象建立容器,再在容器中進行環(huán)境搭建,部署,就和在linux系統(tǒng)里操作是一樣的。 如何在 Visual Studio 中設定部署屬性 在配置管理器中啟用專案部署 在 Visual Studio 中,單擊主選單上的“生成”,然后單擊“配置管理器”。

為每個需要從開啟的解決方案進行部署的專案選中“部署”選項。 配置專案屬性 在 Visual Studio 解決方案資源管理器中,右鍵單擊要為其配置屬性的專案,然后單擊“屬性”。 單擊專案設計器中的“部署”選項卡。 按下表中所述方法配置專案屬性,然后單擊“確定”。

對于解決方案中的每個專案,重復執(zhí)行步驟 1、2 和 3。 如何在docker里部署nodejs 下載映象,安裝環(huán)境 我們先執(zhí)行如下命令,啟動虛擬機器: $ boot2docker start 2014/08/18 21:22:41 Waiting for VM to be started… ……….. 2014/08/18 21:23:21 Started. 2014/08/18 21:23:21 Docker client does not run on Windows for now. Please use 2014/08/18 21:23:21 \”boot2docker\” ssh 2014/08/18 21:23:21 to SSH into the VM instead. 如果我們的物理機記憶體低于4G,那么跑這個boot2docker可能需要手動設定記憶體占用大?。?$ boot2docker start -m=512 我們利用命令就可以進入linux虛擬機器了 $ boot2docker ssh boot2docker: 1.1.2 master : 740106c – Thu Jul 24 03:24:10 UTC 2014 執(zhí)行 docker 命令,會有一個命令列表,里面列出了所有 docker 支援的功能,列表如下: Commands: attach Attach to a running container build Build an image from a Dockerfile mit Create a new image from a container\’s changes … … 下面會對一些常用的命令進行示例說明,我們可以通過如下命令,先查詢centos的映象,并把他下載下來 $ docker search centos #查詢centos名字的映象 $ docker pull centos #下載**純凈版本的centos映象 在呼叫search命令時,你會看到有好多centos包,他們都是這樣的<username>/<image_name>,這些不在根目錄的映象都是非**的,是其他使用者提交到docker hub上去的,耐心等待片刻我們就可以將centos的映象拉下來了。 如果臉黑,映象又不幸被墻,那么試試加上下面的hosts: 54.234.135.251 get.docker.io 54.234.135.251 cdn-registry-1.docker.io 成功下載好centos映象之后,我們可以利用如下命令來檢視映象列表: $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos centos6 b1bd49907d55 2 weeks ago 212.5 MB centos centos7 b157b77b1a65 2 weeks ago 243.7 MB centos latest b157b77b1a65 2 weeks ago 243.7 MB 接下來我們就利用centos7這個映象輸出一段 hello world $ docker run b15 /bin/echo \’Hello world\’ Hello world 注意這里的 b15,他表示centos7這個images的id,不用全部打全,只要保證輸入的id前幾位能找到**映象即可,這點很贊。

稍微復雜一點的例子: $ docker run -i -d -t b15 /bin/sh -c \”while true; do echo hello world; sleep 1; done\” -i表示同步container的stdin,-t表示同步container的輸出,-d表示deamon,以后臺啟動這個container,執(zhí)行這個container是永遠不會停止的,每一秒鐘都會輸出hello world。 至于什么是container,container和image的關系我們下一段再說,列出映象的歷史: $docker history image_name。

如何使用docker部署vue項目

熟悉vue項目的開發(fā)朋友應該了解,對于vue項目來說,上線其實就是執(zhí)行npm run build 命令,然后將build出的dist文件夾上傳到服務器上就可以了,對于現(xiàn)在的前后端分離項目來說,就是把dist放到nginx的html文件夾即可。 上傳的過程既可以手動實現(xiàn),也可以通過jenkins這類**編譯軟件,總之,殊途同歸。

除了上面兩種還有一種現(xiàn)在比較火的部署方式,就是docker部署,當然正如上面說的,docker也是要實現(xiàn)上面的操作,只不過有些差異而已。

針對docker部署需要了解的是,一般我們只需要拉取nginx鏡像,把dist文件夾寫入鏡像即可,不需要去鏡像里面執(zhí)行拉取代碼、執(zhí)行編譯、打包等操作。這些操作一般在寫入鏡像執(zhí)行。 這樣做的目的跟docker的理念是一致的,功能解耦,方便維護,而且對于一些大公司來說,可能還需要將編譯后的代碼進行掃描等操作,如果在docker鏡像內(nèi)編譯的話如果出現(xiàn)錯誤是不好定位問題的。 那么如何實現(xiàn)docker部署vue項目呢,操作如下參考: 文件目錄如下: 在vueProject 根目錄下新建Dockerfile文件,注意沒有后綴,nginx鏡像默認服務器的目錄在/usr/share/nginx/html,內(nèi)容如下: build項目: Build完成后會生成dist目錄 然后在vueProject根目錄下打開命令行執(zhí)行如下命令生成鏡像: 注意**是一個點,代表在當前目錄執(zhí)行Dockerfile 如果沒報錯說明執(zhí)行成功,此時可以在docker鏡像列表看到該鏡像。

啟動鏡像: —name vp 代表自定義啟動的鏡像名稱 -dp 是-d,-p的簡寫 8088:80 代表在宿主機的8088端口映射鏡像的80端口,因為nginx默認的服務器端口就是80 **就是之前生成的鏡像名稱。 大功告成。