【架構師(第四十七篇)】 服務端開發之認識 Docker

語言: CN / TW / HK

highlight: a11y-dark theme: smartblue


持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第30天,點選檢視活動詳情

主要學習內容

使用 Docker 構建 node.js 專案。

Docker 介紹

基於 Docker , 可以把開發環境,測試環境,一鍵部署到任何一臺機器上,只要該機器安裝了 Docker

可以說 有了 Docker 就有了一切 。

Docker 是一種虛擬機器技術,比傳統虛擬機器更加簡單,輕量。

  • 啟動快
  • 資源佔用少
  • 體積小

常用命令

image 映象

  • 下載映象: docker pull <image-name>:<tag>
  • 檢視所有映象 docker images
  • 刪除映象 docker rmi <image-id>
  • 上傳映象 docker push <username>/<repository>:<tag>,要先註冊 hub.docker.com

如果 docker images 出現 REPOSITORY<none> 的情況,可以先執行 docker image prune 刪除。

所有的 id 不需要完全輸入,只需要輸入前幾位能夠區分開就可以。

container 容器

  • 啟動容器docker run -p xxxx:xxx -v=hostPath:containerPath -d --name <container-name><image-name>

    • -p 埠對映
    • -v 資料卷,檔案對映
    • -d 後臺執行
    • --name 定義容器名稱
  • 檢視所有容器 docker ps,加 -a 顯示隱藏的容器

  • 停止容器 docker stop <container-id>
  • 刪除容器 docker rm <container-id>,加 -f 是強制刪除
  • 檢視容器資訊,如 IP 地址 docker inspect <container-id>
  • 檢視容器日誌docker logs <container-id>
  • 進入容器控制檯 docker exec -it <container-id> /bin/sh

啟動一個 Docker 容器

下載 nginx 映象

執行 docker pull nginx,可以看到沒有輸入版本,預設下載 latest 的。

image.png

檢視映象

執行 docker images,檢視所有映象。

image.png

啟動容器

執行 docker run -p 81:80 -d --name myNginx nginx ,會返回一個 id

執行 docker ps 檢視容器列表。

image.png

訪問 nginx

訪問 http://localhost:81/ ,可以看到 nginx 的預設頁,說明容器已經啟動成功了。

image.png

檢視容器資訊

執行 docker inspect 9,可以看到容器資訊,非常的多。

image.png

檢視容器日誌

執行 docker logs 9,可以看到容器日誌,方便排查問題。

image.png

進入容器控制檯

執行 docker exec -it 9 /bin/sh,可以進入到容器的控制檯。

image.png

執行 exit 就可以退出控制檯。

停止容器

執行 docker stop 9 ,就可以停止容器。

image.png

刪除容器

執行 docker ps -a 可以看到剛才被停止的容器依然存在。

執行 docker rm 9 可以刪除容器,這次再檢視就不在列表裡了。

image.png

檔案對映

在啟動容器的時候加上引數 -v xxxx:xxx,冒號前面是宿主機(本地)的地址,冒號後面是虛擬機器的地址

js docker run -p 81:80 -d -v D:/test:/usr/share/nginx/html --name myNginx nginx

這個時候再訪問 nginx ,就對映到我們本地的檔案上面來了。

image.png