基于博主使用與學習過程,持續更新......
-
重啟
systemctl daemon-reload systemctl restart docker # 開機啟動 systemctl enable docker
-
管理
# 刪除所有容器 docker rm -f `docker ps -a -q` # 刪除無引用的鏡像 docker image prune -a -f # 刪除所有鏡像 docker rmi `docker images -q` # 重啟所有容器 docker restart `docker ps -a -q`
-
docker
docker run {dockerParameter} {image} {containerParameter}
{dockerParameter}
為docker create
時期的docker參數①
,只會在創建的時候執行生效一次
并作用于容器整個生命周期,而{containerParameter}
為docker start
時期的容器參數②
,每次啟動
都會執行并生效
,因此通過-e
配置的用戶名密碼
類的環境變量不會因為每次重啟容器,將已修改的用戶名密碼
還原-
rm
:刪除容器 -
rmi
:刪除鏡像 -
f
:強制執行,一般配合刪除鏡像或容器一起使用 -
run
:啟動容器 -
exec
:進入容器 -
inspect
:查看鏡像或容器的詳情 -
search
:搜索鏡像,或訪問https://hub.docker.com,搜索相關鏡像詳細說明,點擊版本信息可查看Dockerfile,可閱讀相關配置 -
pull
:拉取鏡像 -
logs
:查看容器運行日志 -
start
:啟動,每次開啟,程序重新加載容器參數②
并開啟進程 -
stop
:關停,每次關閉,程序會結束進程 -
restart
:重啟,每次關閉,程序首先結束進程,再重新加載容器參數②
并開啟進程start
、stop
、restart
,雖然不會清空容器內的數據,但是不同于虛擬機掛起模式
,不會保留操作當時的狀態,而是類似于虛擬機或計算機的開關機
操作,每次操作都會進入全新的狀態,只是運行的數據被保留
-
-
docker run
-
-d
:后臺模式運行 -
-i
:交互模式運行 -
-t
:分配一個偽輸入終端,通常與 -i 同時使用
-d
與-it
是兩種不同容器運行方式,可根據實際情況使用,一般運行容器使用-d
,進入容器使用-it
-
-p
(--publish):映射宿主機端口,前面為宿主機后面為容器 -
-v
(--volume):掛在宿主機目錄,方便拷貝或遷移數據,前面為宿主機后面為容器,會將宿主機的數據覆蓋至容器,其作用:使容器能夠更方便的訪問宿主機的文件數據
將容器內的數據存儲至宿主機,避免因容器的修改、刪除、重建、損壞而丟失數據
-
h
:指定容器主機名 -
m
:指定容器內存大小,一般與--memory-swap
共同作用。異常不生效時,參考:https://blog.csdn.net/qq23ue/article/details/86637460 -
cp
:宿主機與容器文件拷貝- docker cp {container}:{path} {hostPath}:將容器內的文件拷貝至宿主機
- docker cp {hostPath} {container}:{path}:將宿主機的文件拷貝至容器內
-
-e
:設置環境變量(docker參數①
),如docker run ...... -e JAVA_HOME=/var/java ......
-
--name
:容器名稱 -
--net
:網絡模式(使用host
模式時,-p
參數就不需要了) -
--privileged=true
:設置容器特權。設置為true
時,容器內的root擁有宿主機真正的root權限,設置為false
時,容器內的root只是宿主機的一個普通用戶權限 -
--log-opt
:日志參數,常用max-size(文件大小)與max-file(文件數量) -
--{containerParameter} {containerParameterValue}
:容器參數②
,如docker run ...... --JAVA_HOME /var/java
-
-
docker exec:進入容器,示例:docker exec -it {container} {}
-
/bin/bash
|/bin/sh
|bash
|sh
*在容器中,鍵入exit
退出容器
*bash是sh的完整版,bash完全兼容sh命令,反之不行,具體那個可行需要看容器的基礎鏡像的腳本解釋器
-
-
docker logs:查看容器日志
-
-f
:實時日志 -
-t
:查看日志產生日期 -
--since
:輸出指定日期之后的日志 -
--tail=N
:輸出前N條日志
-
docker info:查看docker信息
-
國內源配置,參考:https://www.cnblogs.com/anliven/p/6218741.html | http://www.lxweimin.com/p/4ef9cc9c2092
-
阿里云
產品與服務
->容器鏡像服務
->鏡像中心
->鏡像加速器
# 主流方式(在/etc/docker目錄增加daemon.json文件,并在文件中配置鏡像倉庫地址) sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1234abcd.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker # centos環境下的其他方式(配置未生效,猜測此配置方式已過時) sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon https://1234abcd.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service sudo systemctl daemon-reload sudo systemctl restart docker
-
使用公共鏡像倉庫地址
Docker-CN: https://registry.docker-cn.com
-
Azure中國鏡像: https://dockerhub.azk8s.cn
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
啟動該方式指定倉庫
# 如果源地址為:registry-1.docker.io/v2 docker pull registry-1.docker.io/v2/{images}
-
擴展
-
docker swarm
,用于docker應用的集群負載管理: -
docker compose
,用于定義和運行多容器 docker應用程序: -
docker machine
,用于創建集群主機的docker容器環境:
-
-