溫馨提示×

溫馨提示×

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

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

Docker容器實(shí)現(xiàn)編排

發(fā)布時(shí)間:2020-11-02 15:29:24 來源:億速云 閱讀:222 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Docker容器實(shí)現(xiàn)編排,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

編寫Dockerfile

Tomcat容器中,要下載相關(guān)的war等,因此我這里編寫一個(gè)Dockerfile來做這個(gè)事。在一個(gè)空的文件夾下創(chuàng)建Dockerfile,內(nèi)容如下:

FROM tomcat
ADD https://github.com/JpressProjects/jpress/raw/alpha/wars/jpress-web-newest.war
/usr/local/tomcat/webapps/
RUN cd /usr/local/tomcat/webapps/ \
&& mv jpress-web-newest.war jpress.war

解釋:

  • 容器基于Tomcat創(chuàng)建。
  • 下載jpress項(xiàng)目的war包到tomcat的webapps目錄下。
  • 給jpress項(xiàng)目重命名。

編寫docker-compose.yml

在相同的目錄下編寫docker-compose.yml,內(nèi)容如下(關(guān)于yml的基礎(chǔ)知識,這里不做介紹,讀者可以自行查找了解):

version: "3.1"
services:
web:
build: .
container_name: jpress
ports:
- "8080:8080"
volumes:
- /usr/local/tomcat/
depends_on:
- db
db:
image: mysql
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 123
MYSQL_DATABASE: jpress

解釋:

  • 首先聲明了web容器,然后聲明db容器。
  • build .表示web容器項(xiàng)目構(gòu)建上下文為.,即,將在當(dāng)前目錄下查找Dockerfile構(gòu)建web容器。
  • container_name表示容器的名字。
  • ports是指容器的端口映射。
  • volumes表示配置容器的數(shù)據(jù)卷。
  • depends_on表示該容器依賴于db容器,在啟動(dòng)時(shí),db容器將先啟動(dòng),web容器后啟動(dòng),這只是啟動(dòng)時(shí)機(jī)
  • 的先后問題,并不是說web容器會等db容器完全啟動(dòng)了才會啟動(dòng)。
  • 對于db容器,則使用image來構(gòu)建,沒有使用Dockerfile。
  • restart描述了容器的重啟策略。
  • environment則是啟動(dòng)容器時(shí)的環(huán)境變量,這里配置了數(shù)據(jù)庫root用戶的密碼以及在啟動(dòng)時(shí)創(chuàng)建一個(gè)名為
  • jpress的庫,environment的配置可以使用字典和數(shù)組兩種形式。
     

OK,經(jīng)過如上步驟,docker-compose.yml就算配置成功了

運(yùn)行

運(yùn)行的方式有好幾種,但是建議使用up這個(gè)終極命令,up命令十分強(qiáng)大,它將嘗試自動(dòng)完成包括構(gòu)建鏡像,(重新)創(chuàng)建服務(wù),啟動(dòng)服務(wù),并關(guān)聯(lián)服務(wù)相關(guān)容器的一系列操作。對于大部分應(yīng)用都可以直接通過該命令來啟動(dòng)。默認(rèn)情況下,docker-compose up啟動(dòng)的容器都在前臺,控制臺將會同時(shí)打印所有容器的輸出信息,可以很方便進(jìn)行調(diào)試,通過 Ctrl-C 停止命令時(shí),所有容器將會停止,而如果使用docker-compose up -d命令,則將會在后臺啟動(dòng)并運(yùn)行所有的容器。一般推薦生產(chǎn)環(huán)境下使用該選項(xiàng)。因此,這里進(jìn)入到docker-compose.yml所在目錄下,執(zhí)行如下命令:

docker-compose up -d

執(zhí)行結(jié)果如下:

Docker容器實(shí)現(xiàn)編排

執(zhí)行后,通過docker-compose ps命令可以看到容器已經(jīng)啟動(dòng)了。

初始化配置

接下來,瀏覽器中輸入http://localhost:8080/jpress,就可以看到j(luò)press的配置頁面,如下:
Docker容器實(shí)現(xiàn)編排

根據(jù)引導(dǎo)頁面配置數(shù)據(jù)庫的連接信息以及網(wǎng)站的基本信息:

Docker容器實(shí)現(xiàn)編排
Docker容器實(shí)現(xiàn)編排

注意:由于mysql和web都運(yùn)行在容器中,因此在配置數(shù)據(jù)庫地址時(shí),不能寫回環(huán)地址,否則就去web所在的容器里找數(shù)據(jù)庫了。

配置完成后,運(yùn)行如下命令,重啟web容器:

docker restart jpress

關(guān)于Docker容器實(shí)現(xiàn)編排就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

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

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

AI