1. 程式人生 > >docker命令行學習

docker命令行學習

5-0 同時 .com all 共享 mar 刪除 也會 remove

docker命令行學習

docker run

  • docker run --help:老實說這條最管用了
  • docker run -it:交互模式,允許控制臺輸出
  • docker run -d:detach,以後臺進程的形式運行,可以與-it同時生效
  • docker run --name "your docker name":指定名稱,可以在後續操作替代id
  • docker run -v {host path}:{docker path}:掛載磁盤,下面詳細說
  • docker run --rm: Automatically remove the container when it exits,結束後自動刪除docker,省去了docker rm的操作
  • docker run -p {host port}:{docker port}:指定端口映射關系,冒號前是宿主機的端口,冒號後是容器的端口
  • docker run --restart {mode}:支持重啟的容器,三種模式:no/on-failure/always,看名字就知道是幹嘛的了

docker run -v

重點學習一下docker run -v這個磁盤掛載操作:

參考: 關於Docker目錄掛載的總結

掛載磁盤的目的是將宿主機的目錄掛載到容器中,這樣可以達到宿主機和容器共享一個目錄,從而更方便的共享數據。
值得註意的是,當在宿主機或容器中修改了目錄內的內容或是目錄的權限,相應的映射目錄也會進行改變,但是如果是容器被刪除,宿主機內的目錄並不會被刪除,但是反之則會。

列出幾點關鍵點:

  • 容器目錄不可以為相對路徑
  • 宿主機目錄如果不存在,則會自動生成
  • 宿主機的目錄如果為相對路徑,會在/var/lib/docker/volumes/下創建目錄
  • 如果只是-v指定一個目錄,隨機生成的一個目錄名
  • 掛載宿主機已存在目錄後,在容器內對其進行操作,報“Permission denied”

docker logs

  • docker logs {docker_id/docker_name} :查看日誌(控制臺輸出)
  • docker logs -f {docker_id/docker_name} :類似tail -f 實時查看輸出

docker exec

  • docker exec -it {docker_id/name} /bin/bash:進入後臺運行的容器的交互模式

docker build

  • docker build -t {tag_name} {Dockerfile dir}:根據目錄下的Dockerfile文件構建一個鏡像,-t指定其名稱和tag

docker命令行學習