這篇文章給大家分享的是有關(guān)Docker如何部署的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
洪山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),洪山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為洪山上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的洪山做網(wǎng)站的公司定做!
我們將在 CentOS 7 上演示用 Docker 部署 Spring Boot 程序。
我們需要編譯自己的 Docker 鏡像, 并運行鏡像的容器。
主流的云計算 (PAAS) 平臺都支持發(fā)布 Docker 鏡像。
Docker 是使用 Dokerfile 文件來編譯自己的鏡像的。
FROM :指明了當(dāng)前鏡像繼承的基鏡像
編譯當(dāng)前鏡像時會自動下載基鏡像
示例 : FROM ubuntu
MAINTAINER :(maintainer, 維護(hù)者) 指明了當(dāng)前鏡像的作者
示例 : MAINTAINER info
RUN :可以在當(dāng)前鏡像上執(zhí)行 Linux 命令并形成一個新的層
RUN /bin/bash -c "echo helloworld"
RUN ["/bin/bash", "-c", "echo hello"]
RUN 是編譯時(build)的動作
示例 : 可有如下兩種格式, CMD 和 ENTRYPOINT 也是如此
CMD :(command, 命令/指令) 指明了啟動鏡像容器時的默認(rèn)行為
一個 Dockerfile 里只能有一個 CMD 指令。CMD 指令里設(shè)定的命令可以在運行鏡像時使用參數(shù)覆蓋。
CMD 是運行時(run)的動作
示例 : CMD echo "this is a test"
可被 docker run-d image_name echo "this is not a test"
覆蓋。
EXPOSE :(expose, 暴露) 指明了鏡像運行時的容器必需監(jiān)聽指定的端口。
示例 : EXPOSE 8080
ENV :(environment, 環(huán)境) 可用來設(shè)置環(huán)境變量
示例 : ENV myName=info
或 ENV myName info
ADD :從當(dāng)前工作目錄復(fù)制文件到鏡像目錄中去
示例 : ADD test.txt /mydir/
ENTRYPOINT :(entrypoint, 入口點) 讓容器像一個可執(zhí)行程序一樣運行, 這樣鏡像運行時可以像軟件一樣接收參數(shù)執(zhí)行。
ENTRYPOINT 是運行時(run)的動作。
示例 : ENTRYPOINT ["/bin/echo"]
我們可以向鏡像傳遞參數(shù)運行 :
docker run -d image_name "this is not a test"
通過下面命令安裝 Docker :
yum install docker
啟動 Docker 并保持開機自啟 :
systemctl start docker # 啟動docker systemctl enable docker # 設(shè)置開機啟動
新建 Spring Boot 項目, docker-demo, 這個項目很簡單, 只修改了入口類, 代碼如下 :
@SpringBootApplication @RestController public class DockerDemoApplication { @RequestMapping("/") public String home() { return "Hello Docker!!"; } public static void main(String[] args) { SpringApplication.run(Ch20dockerApplication.class, args); } }
在 CentOS 7 上的 /var/apps/dockerdemo 目錄下放入我們編譯好的 dockerdemo 的 jar 包, 如 dockerdemo-0.0.1-SNAPSHOT.jar, 在同級目錄下新建一個 Dokcerfile 文件。
Dockerfile 文件內(nèi)容如下 :
FROM java:8 # 基鏡像為Java, 標(biāo)簽(版本)為8 MAINTAINER info # 作者 info # 將我們的 dockerdemo-0.0.1-SNAPSHOT.jar 添加到鏡像中, 并重命名為app.jar ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 # 運行鏡像的容器, 監(jiān)聽8080端口 ENTRYPOINT ["java","-jar","/app.jar"] # 啟動時運行java -jar app.jar
在 /var/apps/dockerdemo 目錄下執(zhí)行下面命令, 執(zhí)行編譯鏡像 :
docker build -t info/dockedemo .
其中, info/dockedemo為鏡像名稱, 我們設(shè)置 info 作為前綴, 這也是 Docker 鏡像的一種命名習(xí)慣。
注意, 最后還有一個 .
, 這是用來指明 Dockerfile 路徑的, .
表示 Dockerfile 在當(dāng)前路徑下。
這時我們查看本地鏡像
docker images
通過下面命令運行 :
docker run -d --name test -p 8080:8080 info/dockerdemo
查看我們當(dāng)前的容器狀態(tài)
docker ps
當(dāng)前的 CentOS 系統(tǒng)的 ip 為 192.168.25.11, 訪問 http://192.168.25.11:8080
感謝各位的閱讀!關(guān)于“Docker如何部署”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!