本機:mac M1 11.2.3
docker: 20.10.7
先讓容器在背景保持運作中,不進入shell介面。
- run 是pull(下載 image) 和 create(創建容器)和 start(啟動容器)組合在一起的功能。
- -d 代表 detach,將docker在背景執行。
- -p 80:80是將主機的80port轉到web這個Container的80 port。
docker run -d -p 80:80 nginx
docker ps -a
建立完後會跳出一串英數的字串,這是CONTAINER ID,顯示完就會直接回來,且不會卡在shell。
用本機的瀏覽器打開網頁,輸入127.0.0.1會看到下圖。
回到終端機,會看到終端機還是維持原本的畫面,但正常來說只要有進到網頁,就會有log,如果想要看到log的話,就可以輸入:
docker container logs CONTAINER_ID
這樣就會印出該container的log。
但這樣也很麻煩,因為想看log的話就要一直來下指令,下方為自動顯示log的指令:
docker container logs -f CONTAINER_ID
若是在這時候使用control+C的話,不會將container關閉。
下方指令用attach來連接運行中的container。
回到container的shell,之後的log會顯示出來。(如果想看之前的紀錄就開另一個終端機去執行logs)
docker attach CONTAINER_ID
在attach時使用control+C
就直接被關閉。