在上一篇文章《小裁縫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(容器間的關聯相關)。這篇文章主要講解幾個常用的。
--name 給容器取名字
通過上面的命令啟動容器,容器的啟動日誌會直接在前臺展示出來。
這樣做會使你無法在當前連接中進行其他操作,另外你通過Ctrl+C也沒有辦法停掉容器,要想停掉容器只有重新建立一個ssh連接才行。
-it 保持STDIN打開,分配偽TTY
如果想要做到通過Ctrl+C就可以停止掉,需要加上-it參數,如下所示
通過上述命令,我們就可以利用Ctrl+C命令來停止容器。但是我們仍然無法在同一個ssh連接中進行操作,因此我們就需要加入下面的參數。
-d 在後臺運行容器並輸出容器的ID
通過加上-d參數,在啟動容器之後輸出的是容器的ID,通過本篇開頭介紹的查看日誌的命令可以查看容器啟動日誌。
-w創建容器的工作目錄 -v 將本機目錄掛載容器內部
因為在構建鏡像的時候,指定了工作目錄,而且將可執行jar包拷貝到工作目錄中,因此我們進入容器可以看到對應的文件。但是我們可以通過-w參數來指定容器內的目錄,通過-v將可執行jar包掛載到-w創建的容器工作目錄中,並創建容器成功
-p映射端口
之前說過這個鏡像是基於之前的spring-boot-mongo的jar包構建的,因此它之前的功能在用容器啟動之後也是可以用的,而且從日誌可以看出,啟動端口為8088
那我們在瀏覽器訪問對應的地址看看,能否起到作用?如果訪問不到,我們該怎麼辦?
-e設置環境變量
在前面一篇關於微服務多環境的切換文章中我們加到了profile,而且小編在構建鏡像時默認把profile設置為topline-1,這可以從容器啟動日誌中看出來
那如果想將容器切換到topline-2,該如何操作?其實只要加上-e參數,設置環境變量即可。但是需要注意的是變量名在鏡像構建時需要設定好。
--addhost
這個命令相當於是在系統hosts文件中加入一個host,主要用到的場景是兩臺宿主機上的容器間相互調用
--link
這個參數也是在容器的hosts文件加入host,但是應用場景是同一臺宿主機上的容器相互調用
--restart 宿主機重啟之後是否啟動容器
--network 將容器連接到網絡中
上面主要講了幾個常用的,其他的大家可以到Docker Doc上去查看,如果有什麼問題也可以留言,我看到會第一時間給大家回覆。歡迎點擊下方圖片進入我的主頁查看相關文章喲~