力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

Docker 文章 Bash DNS 小裁縫先生 小裁縫先生 2017-08-28

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

在上一篇文章《小裁縫Docker系列(二):Docker命令初識》中,主要講解了如何獲取鏡像,如何查看鏡像以及如何給鏡像Tag。在獲取鏡像之後,我們並不能訪問它,只有通過鏡像啟動一個容器之後才能訪問。那我們該如何啟動容器呢?

在介紹如何啟動容器之前,先介紹兩個使用docker必備的命令:

  • docker ps [-a] :用來查看正在運行的命令,加上"-a"會將已經停止的容器也列舉出來

  • docker logs [-f] 容器ID:用來查看正在運行的容器的日誌,加上“-f”會在前臺一直監控到日誌

  • docker exec -it 容器ID sh(bash):使用這個命令,可以進入到容器內部

我們可以通過docker run命令來啟動一個容器,官網提供的run命令的用法如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

[OPTIONS]表示的是可選項,IMAGE表示的是鏡像名稱,[COMMADN]表示的是命令,[ARG]表示的是參數,接下來,我們已之前幾篇文章中的Springboot程序<topline/xiaocaifeng/spring-boot-mongo>製作的鏡像為例子,對run命令的可選項展開講解。

從官方文檔中,可以看出Docker run命令的可選項有98個之多,其中涉及到的有容器host,cpu,device,dns,health,ip,memory,link(容器間的關聯相關)。這篇文章主要講解幾個常用的。

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

--name 給容器取名字

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

通過上面的命令啟動容器,容器的啟動日誌會直接在前臺展示出來。

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

這樣做會使你無法在當前連接中進行其他操作,另外你通過Ctrl+C也沒有辦法停掉容器,要想停掉容器只有重新建立一個ssh連接才行。

-it 保持STDIN打開,分配偽TTY

如果想要做到通過Ctrl+C就可以停止掉,需要加上-it參數,如下所示

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

通過上述命令,我們就可以利用Ctrl+C命令來停止容器。但是我們仍然無法在同一個ssh連接中進行操作,因此我們就需要加入下面的參數。

-d 在後臺運行容器並輸出容器的ID

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

通過加上-d參數,在啟動容器之後輸出的是容器的ID,通過本篇開頭介紹的查看日誌的命令可以查看容器啟動日誌。

-w創建容器的工作目錄 -v 將本機目錄掛載容器內部

因為在構建鏡像的時候,指定了工作目錄,而且將可執行jar包拷貝到工作目錄中,因此我們進入容器可以看到對應的文件。但是我們可以通過-w參數來指定容器內的目錄,通過-v將可執行jar包掛載到-w創建的容器工作目錄中,並創建容器成功

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

-p映射端口

之前說過這個鏡像是基於之前的spring-boot-mongo的jar包構建的,因此它之前的功能在用容器啟動之後也是可以用的,而且從日誌可以看出,啟動端口為8088

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

那我們在瀏覽器訪問對應的地址看看,能否起到作用?如果訪問不到,我們該怎麼辦?

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

-e設置環境變量

在前面一篇關於微服務多環境的切換文章中我們加到了profile,而且小編在構建鏡像時默認把profile設置為topline-1,這可以從容器啟動日誌中看出來

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

那如果想將容器切換到topline-2,該如何操作?其實只要加上-e參數,設置環境變量即可。但是需要注意的是變量名在鏡像構建時需要設定好。

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

--addhost

這個命令相當於是在系統hosts文件中加入一個host,主要用到的場景是兩臺宿主機上的容器間相互調用

--link

這個參數也是在容器的hosts文件加入host,但是應用場景是同一臺宿主機上的容器相互調用

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

--restart 宿主機重啟之後是否啟動容器

--network 將容器連接到網絡中

力薦!小裁縫Docker系列(三):如何讓鏡像“run”起來

上面主要講了幾個常用的,其他的大家可以到Docker Doc上去查看,如果有什麼問題也可以留言,我看到會第一時間給大家回覆。歡迎點擊下方圖片進入我的主頁查看相關文章喲~

相關推薦

推薦中...