Docker

安裝

參考資料:

https://marcus116.blogspot.com/2019/01/docker-docker-for-windows.html

issue

virtualization-must-be-enabled

以系統管理員執行 + 重開電腦

bcdedit /set hypervisorlaunchtype auto

https://blog.csdn.net/mythest/article/details/92999646

基本指令

查看Image與Container

docker images
docker ps -a

# 查看使用中的container
docker ps -l

停止+刪除container

docker stop [container_id]
docker rm [container_id]

刪除可加上-f,強制刪除

搜尋image

ubuntu為關鍵字,is-official=true 表示要搜尋是官方的 Docker image

下載image

刪除image

啟動container

直接啟動,會自動給name,若沒有image會自動去下載

  • --name

image記得放在最後

  • -it

讓標準輸入維持在打開的狀態 + 替Container配置一個虛擬的終端機

啟動後會進入終端機畫面

  • -d

讓Container進入背景執行

  • -p

可以將主機的Port綁定到Container的Port,格式為host_port:container_port

把主機上的8080連接埠綁定Container的80連接埠,所以可從主機使用127.0.0.1:port或ip:port連線至container的埠口

  • -v

掛載目錄,其格式為host_volume:container_volume

冒號前面是本機的目錄位置,冒號後面則是Container中的路徑(必需是絕對路徑)

範例二表示將Container內的/var/www/html資料夾路徑與外部 C:/Uesrs/Amin/www資料夾路徑相連,這樣可讓外部的檔案可直接與Container內部進行共同存取。

  • --rm

Container執行結束(exit)之後會自動被移除,移除後不會顯示在docker ps -a

  • --restart=always

如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container

http://white5168.blogspot.com/2016/05/windowsdocker.html#.XnM4pKgzaUm

https://ithelp.ithome.com.tw/articles/10191634

推薦:

https://www.jinnsblog.com/2018/10/docker-container-command.html

container狀態

查詢狀態

啟動成功 ==> Up

停止 ==> Exited (0)

進入/離開container

  • 進入container

已經啟動的container才能使用exec進入

  • 啟動然後直接進入container

  • 離開container

若以-ia進入,使用exit離開時container 會被關閉,status會變成 Exited(0)

若以exec進入,exit後狀態為Up

  • 放置背景執行

可用鍵盤指令,container可維持在「Up」

  • 再次回到背景執行的container

start/stop container

停止,狀態變成「Exited (0)」

啟動,狀態變成「Up」

啟動然後直接進入container

網路

查看網路設定

docker run會預設將建立的container放到"bridge"

查看bridge詳細資料

可以看到container所使用的網段

查詢container所使用的ip,container_name可變更

新增網段

將container設定至新網段

若container已建立,需要更新網段

斷開原本的bridge網段

https://dotblogs.com.tw/swater111/2017/01/03/171042

針對已啟用 docker container 修改 Port

https://roy051023.github.io/2018/01/15/Running-Docker-Change-Port/

docker-machine

https://www.runoob.com/docker/docker-machine.html

操作範例

啟動container範例 (mysql),若沒有image沒有則會直接下載

container名稱 = mysql579

root密碼 = Nosecret

版本 = 5.7.9

啟動後無法從windows連線至mysql579

加上-p 指令是要把container的某個port發佈到host主機上,

例如 -p 3306:3306 就是要把container 上的3306埠發佈在host的3306埠上

此就可以藉由windows的3306連線至container的3306了~

要進入mysql579的mysql指令系統, 可以用一個新指令 docker exec

這個指令的意思是想執行(execute) mysql579這個container裡的mysql指令, -it是互動模式的意思

https://dotblogs.com.tw/swater111/2016/12/29/151738

Linux套件

若要使用netstat

若要使用ping

Windows Container

https://skychang.github.io/2017/01/06/Docker-Docker_for_Windows_10_First/

Last updated

Was this helpful?