小鯨魚[Docker]

原文:https://blog.csdn.net/sunnyzyq/article/details/101222410

(1)Docker 安裝

yum -y install docker

輸入語句執(zhí)行后,就可以看到 Docker 它正在下載了,下面 19% 是下載進度。

當你看到下圖的這個Complete,就表示 Docker 已經下載安裝好了。

(2) 查看Docker版本
是否真的已經安裝好了呢?我們可以通過以下命令查看Docker的版本。

docker version

此時,我們可以看到 Docker 的版本號為 1.13.1,表示真的已經安裝上了。

(3) 啟動Docker

service docker start

(4) 打包項目到服務器

現(xiàn)在 Docker 已經啟動成功了,我們來實戰(zhàn)一下,我們先將Eclipse中的項目打成jar包放到Linux上。

(5) 創(chuàng)建Dockerfile

在我們剛剛的項目jar包下同級目錄下,創(chuàng)建Dockerfile文件,這個文件是玩轉Docker的核心文件哦。

touch Dockerfile

現(xiàn)在這個Dockerfile還是一紙空文,我們需要將我們的項目 jar 包寫進去。
編輯Dockerfile文件,內容如下(注意第3行第一個是你的jar包名):

FROM java:8
VOLUME /tmp
ADD com.sunnyzyq-0.1.jar app.jar
RUN bash -c ‘touch /app.jar’
EXPOSE 80
ENTRYPOINT [“java”,"-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

不想在Linux上打字的可以把文件拿出來編輯,然后放回去。

內容解釋:
這里他有個鏡像名詞,不懂沒關系,看完后面就懂了,先記住這個名詞就是。

FROM :表示用哪個基礎鏡像去構建新的鏡像,上面的java:8, 也就是jdk1.8。
ADD :表示疊加什么鏡像到上面的基礎鏡像中。我們現(xiàn)在就疊加當前目錄下的 com.sunnyzyq-0.1.jar 到基礎鏡像中。
EXPOSE:表示對外暴露的端口,我使用的是80。
RUN bash -c ‘touch /app.jar’ :使用 shell編程,執(zhí)行一個 touch 命令,更新文件的訪問和修改時間 -c 如果文件不存在,則不要進行創(chuàng)建。具體參考liunx 的 touch 命令和shell編程。
ENTRYPOINT :入口點, 表示容器運行后默認執(zhí)行的命令。
(6) 拉取基礎鏡像 java8

docker pull java:8

上面Dockerfile說得很清楚,我們的程序需要一個基礎鏡像Java8,我這里由于昨天已經下載好了,所以他會提示更新,你們如果沒有下載 java8 的鏡像,請靜等下載。

(7) 構建程序鏡像
現(xiàn)在 java8 的基礎鏡像有了,就可以創(chuàng)建我們的程序鏡像了,就是執(zhí)行剛剛那個Dockerfile文件。

docker build -t xxx .
注意:xxx 為新鏡像名字,隨便取,別忘了最后有個點。

可以我們程序的鏡像已經構建成功了,并生成了一個930858c62738的鏡像ID。

(8) 查看鏡像

docker images

可以看到剛剛的創(chuàng)建的鏡像,以及我們之前下載的jave8鏡像(這里還可以看到,由于我剛剛創(chuàng)建的鏡像和昨天創(chuàng)建的鏡像雖然名字不一樣,但其他數(shù)據都一樣,這說明兩個鏡像底層都是指的同一個)。

(9)創(chuàng)建容器并運行

鏡像我們已經有了,但最后能讓項目運行起來的是容器。如何理解容器與鏡像的關系呢?
鏡像可以理解為一個Java類,而容器可以理解為Java類的實例。
類只有一個,但可以new出千千萬萬個實例對象。
所以,鏡像只是一個可以生成容器的東西,而容器才能讓程序運行起來。

那么,現(xiàn)在我們就讓我們用剛創(chuàng)建的鏡像創(chuàng)建一個容器,并讓他運行起來。

如: docker run --name sunnyzyq -d -p 80:80 sunnzyq-docker-test

命令解釋:

容器名:我這里取的名字為 sunnyzyq
-d: 后臺運行容器,并且返回容器完整ID
-p: 是用于指定端口的。
內部端口:項目程序的端口
外部端口:網站域名的端口

(10) 查看運行的容器

docker ps

這樣可以看到我們剛運行容器的詳細信息。
docker ps -a

僅以記錄 以備不時之需

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容