啟動容器
# 后臺啟動容器,-d 為開啟后臺模式(守護進程)
docker run -d 鏡像名稱
# 注意點:
# docker容器使用后臺運行時,必須要有一個前臺進程,不然docker發現沒有應用,就會自動停止
# 用完就刪除,一般用來測試
docker run --rm 鏡像名稱
退出容器
# 退出并停止容器
exit
# 退出但不停止容器
Ctrl + P + Q
刪除容器
# 刪除指定容器,但不能刪除正在運行中的容器,可以用rm -f參數強行刪除
docker rm 容器id
# 刪除所有容器
docker rm -f $(docker ps -aq)
啟動和停止容器
# 啟動容器
docker start 容器id
# 重啟容器
docker restart 容器id
# 停止當前正在運行的容器
docker stop 容器id
# 強制停止當前容器
docker kill 容器id
進入當前正在運行的容器
# 方式一:進入容器后開啟一個新的終端(或會話),可以在里面操作(常用!!!)
docker exec -it 容器id /bin/bash
# 方式二:進入容器正在執行的終端(或會話),不會啟動新的進程
docker attach 容器id
從容器內拷貝文件到宿主機上
docker cp 容器id:容器內路徑 宿主機目的路徑
# 注意點:
# 拷貝文件,不需要容器處于運行中,即時處于停止狀態,只要文件存在,都可以拷貝
# 拷貝是一個手動的過程,可以通過-v掛在目錄,實現文件自動同步
查看鏡像變更歷史(鏡像構建步驟)
# 可通過該命令學習借鑒好的鏡像的構建過程!!!
docker history 鏡像id
提交鏡像
# 提交容器成為一個新的副本
docker commit -m="提交的描述信息" -a="作者" 容器id 目標鏡像名稱:[TAG]
使用數據卷
# 方式一:直接使用命令來掛載
docker run -it -v 宿主機目錄:容器內目錄
docker run -it -v 掛載名稱(不帶斜杠):容器內目錄
docker run -it -v 容器內目錄
# 方式二:Dockerfile
# FROM centos
# VOLUME ["volume01", "volume02"]
# CMD echo "----end----"
# 查看容器卷掛載情況(通過容器鏡像元數據查看)
docker inspect 容器id
# 查看所有的 volume 的情況
docker volume ls
# 查看卷的詳細情況
docker volume inspect 卷名
# 注意點:
# 通常docker卷在沒有指定目錄的情況下,都是在/var/lib/docker/volumes/xxx/_data
# 如何確定是具名還是匿名掛載,還是指定路面掛載?
# -v 容器內路徑 => 匿名掛載
# -v 卷名(不帶斜杠):容器內路徑 => 具名掛載
# -v 宿主機路徑(帶斜杠):容器內路徑 => 指定路徑掛載
# 數據卷拓展
docker run -d 具名:容器內路徑:ro nginx
docker run -d 具名:容器內路徑:rw nginx
# 只讀,表明該路徑只能通過宿主機來操作,容器內部是無法操作的!!!
ro => readonly
# 可讀可寫(默認)
rw => readwrite
# 注意點:
# 一旦設置了容器權限,容器對掛載出來的內容就有了限定
數據卷容器(實現不用容器之間的數據共享)
# 使用 --volumes-form
docker run -d -p 3310:3306 \
-v /etc/mysql/conf.d \
-v /var/lib/mysql \
-e MYSQL_ROOT_PQSSWORD=123456 \
--name mysql01 mysql:5.7
docker run -d -p 3311:3306 \
-e MYSQL_ROOT_PQSSWORD=123456 \
--name mysql02 \
--volumes-form mysql01 mysql:5.7
# 運行完后,兩個容器數據同步(數據通過拷貝的形式完成同步,每個容器都有一個副本!!!)
導入導出
# 鏡像導出(當前命令執行路徑即為鏡像導出目錄)
docker save 鏡像id > XXX.tar
# 鏡像導入
docker load < XXX.tar
# 鏡像導出(可解決鏡像load后沒有名稱和標簽的問題)
docker save -o XXX.tar 鏡像名稱:鏡像標簽
# 鏡像重命名
docker tag 鏡像id 鏡像名稱:鏡像標簽
# 容器導出
docker export 容器id > XXX.tar
# 容器導入
docker import XXX.tar
其他命令
# 查看日志
docker logs -f -t --tail 顯示條數 容器id
docker logs -f 容器id
# 查看容器中進程信息
docker top 容器id
# 查看鏡像元數據
docker inspect 容器id/鏡像id
# 刪除所有無名稱的鏡像(懸空鏡像)
docker rmi $(docker images -f "dangling=true" -q)
# 查看 docker run運行命令
history | grep 'docker run'
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。