提示有權限問題,請在命令前加sudo
node
操做 | 命令 | 舉例 | 備註 |
---|---|---|---|
登陸docker hub | docker login -u xxx -p xxx | docker login -u 用戶名 -p 密碼 | |
拉取鏡像 | docker pull NAME[:TAG] | docker pull mysql:5.6 | |
上傳鏡像 | docker push NAME[:TAG] | docker push mydocker:v1 | 先登陸 |
查看本地鏡像 | docker images [-a/q] NAME | docker images ubuntu | a【所有】 q【只顯示ID】 |
刪除鏡像 | docker rmi [-f] IMAGE[:TAG] [IMAGE...] | docker rmi mysql:5.6 redis | f【強制刪除】 |
標記鏡像 | docker tag SIMAGE TIMAGE | docker tag ubuntu:18.10 cool/ubuntu:v1 | |
導出鏡像 | docker save -o xxx.tar IMAGE[:TAG] [IMAGE...] | docker save -o dockers.tar mysql redis:4.0 | 能夠一次性導出多個鏡像 |
導出鏡像並壓縮 | docker save IMAGE[:TAG] [IMAGE...]|gzip > xxx.tar.gz | docker save mysql:5.7 node:8 | gzip > app.tar.gz |
導入鏡像 | docker load [-i] xxx | docker load -i xxx.tar docker load<xxx.tar.gz |
用於鏡像備份 |
操做 | 命令 | 舉例 | 備註 |
---|---|---|---|
建立容器 | docker run/create [-i/d/t/p/v/-name/-link] IMAGE [COMMAND] | docker run --name nginx -p 80:80 -v /data:/data --link redis:redis -d nginx:latest docker run -it nginx:latest /bin/bash |
it【以交互模式運行容器】 p【端口映射,格式爲:主機(宿主)端口:容器端口】 --name【指定容器名稱】 --link【連接其餘容器】 d【後臺運行容器】 v【文件映射 格式爲 本地文件:容器文件】 create只是建立容器並不運行 |
啓動/中止/重啓容器 | docker start/stop/restart CONTAINER [CONTAINER ...] | docker start redis nginx docker start 09b93464c2f7 |
能夠使用容器名稱或ID,支持一次操做多個容器 |
刪除容器 | docker rm [-f/v] CONTAINER [CONTAINER ...] | docker rm nginx | f【強制刪除】 v【同時刪除容器映射的本地文件或目錄】 |
在容器中執行命令 | docker exec -it CONTAINER /bin/bash | docker exec -it 9df70f9a0714 /bin/bash | |
查看容器列表 | docker ps [-a/n/q] | docker ps docker ps -aq |
a【列出全部容器包括中止運行的容器】 n【列出最近建立的n個容器】 q【靜默模式,只顯示容器編號】 |
容器與主機之間的數據拷貝 | docker cp SPATH DPATH | docker cp /www/runoob 96f7f14e99ab:/www/ docker cp 96f7f14e99ab:/www /tmp/ |
不論容器是否在運行,均可拷貝成功 |
獲取容器/鏡像的元數據 | docker inspect IMAGE/CONTAINER | docker inspect mysql:5.6 | |
鏈接到正在運行中的容器 | docker attach CONTAINER | docker attach --sig-proxy=false nginx | --sig-proxy=false來確保CTRL-D或CTRL-C不會關閉容器 |
暫停/取消暫停容器 | docker pause/unpause CONTAINER | docker pause mysql | |
從容器建立一個新的鏡像 | docker commit [-a/c/m/p] CONTAINER IMAGE[:TAG] | docker commit -a "我" -m "修改配置" a404c6c174a2 my-nginx:v1 | a【鏡像做者】 c【使用Dockerfile指令來建立鏡像】 m【備註信息】 p【在commit時,將容器暫停】 |
導出容器 | docker export [-o] CONTAINER | docker export -o mysql.tar a404c6c174a2 | |
導入容器鏡像 | docker import xxx.tar IMAGE[:TAG] | docker import nginx-test.tar nginx:imp | 使用此方式導入的鏡像,鏡像全部歷史會丟失 |
操做 | 命令 | 備註 |
---|---|---|
中止全部運行的容器 | sudo docker stop $(sudo docker ps -q) | |
啓動全部容器 | sudo docker start $(sudo docker ps -aq) | |
刪除全部容器 | sudo docker stop $(sudo docker ps -q)&&sudo docker rm $(sudo docker ps -aq) | 刪除容器要確保容器處於中止狀態 |
刪除untagged images鏡像 | sudo docker rmi $(sudo docker images | grep "^<none>" | awk "{print $3}") | |
刪除全部鏡像 | sudo docker rmi $(sudo docker images -q) | 刪除鏡像要確保鏡像沒有被容器引用 |
查看容器IP端口 | sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' 99c83edf2af1 |