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