docker常用命令
docker的安裝很多,就不說了
docker常用命令:
注:以下命令中,凡涉及到容器id的,都可以用容器id前三位,或者容器name
重啟Docker服務(wù):systemctl restart docker / service docker restart
關(guān)閉Docker服務(wù):docker service docker stop / docker systemctl stop docker
查看Docker服務(wù)狀態(tài):systemctl status docker
停止容器:docker stop 容器ID
重啟容器:docker restart 容器ID
刪除容器:docker rm container_id
搜索倉庫鏡像:docker search 鏡像名
查看鏡像:docker images / docker image ls
拉取鏡像:docker pull 鏡像名(或docker pull nginx:xxx ,xxx指版本號(hào))
刪除鏡像:docker image rm image_id / docker rmi image_id
啟動(dòng)(停止的)容器:docker start 容器ID
啟動(dòng)(新)容器:docker run -it ubuntu /bin/bash(或docker run -p 80:80 -d --name nginx nginx:1.24.0,第一個(gè)80宿主機(jī)端口,第二個(gè)80容器端口)
進(jìn)入容器:docker attach 容器ID / docker exec -it 容器ID /bin/bash,推薦使用后者。
先啟動(dòng)再設(shè)置自啟動(dòng):docker update --restart=always 容器ID (執(zhí)行后需要systemctl restart docker 才能生效)
查看正在運(yùn)行的容器:docker ps
查看所有容器:docker ps -a
查看docker內(nèi)存情況:docker stats -a / dokcer stats
查看容器配置 :docker inspect 容器id
查看容器掛載目錄 :docker inspect 容器id |grep Destination
生成image鏡像:
運(yùn)行 docker run:
-dit 不清楚
--name docker_name 定義docker容器的名稱,如果不填會(huì)隨機(jī)分配一個(gè)名字,建議還是填一個(gè)
--add-host www.baidu.com:192.168.1.100 設(shè)置host,如果一切沒問題,這個(gè)可以不要
-p 8888:8000 設(shè)置端口映射,8888為宿主機(jī)端口,8000為docker內(nèi)部端口,含義:訪問宿主機(jī)8888的時(shí)候,相當(dāng)于訪問docker里的8000端口
--log-driver json-file --log-opt max-size=5120m --log-opt max-file=2 --log-opt max-size=5120m為設(shè)置日志文件單個(gè)大小為 5120M --log-opt max-file=2 設(shè)置文件最多為2個(gè),多余的會(huì)刪掉 (這一步建議根據(jù)自己服務(wù)器設(shè)置,不設(shè)置的話會(huì)無限增長)
--restart=always 設(shè)置會(huì)一直重啟,重啟dockers后會(huì)自啟動(dòng),防止以外終止
-v /data/app/docker_name:/src:rw 服務(wù)器文件夾與docker里文件夾映射,含義:宿主機(jī)/data/app/docker_name 這個(gè)文件夾對應(yīng)容器里的/src ,容器對這個(gè)文件夾具有 rw權(quán)限,r : 獨(dú) w:寫, 重要文件最好都這樣,比如用戶上傳的圖片等,防止docker rm docker_name 后丟失
docker_name:v1 image的名稱和版本號(hào)
/bin/bash 不清楚
查看docker日志:
跟蹤查看日志:docker logs -f -t 容器名稱或者容器id
查看最新n行日志:docker logs -t --tail=50 容器名稱或容器id
查看某個(gè)時(shí)間之后的日志:docker logs -t --since="2022-09-22T09:10:00" 容器名稱或容器id
查看最近30min的日志: docker logs --since 30m 容器名稱或容器id
查看某個(gè)時(shí)間段日志:docker logs -t --since="2022-09-22T09:10:00" --until "2022-09-22T09:20:00" 容器名稱或容器id
查看日志路徑:docker inspect --format='{{.LogPath}}' <容器ID>
導(dǎo)出docker日志到文件:docker logs --since="2023-04-28T00:00:00" --until "2023-04-28T12:00:00" 容器id >>file.log
查看日志大小:docker inspect --format='{{.LogPath}}' <容器ID> | xargs sudo du -sh
docker 查看日志大小(/data/docker 為docker的安裝目錄):
for d in $(ls -d /data/docker/containers/*); do ls --time-style=long-iso -lh $d/*-json.log | awk -F' *|/' '{printf("%30s\t%s\t%s %s\t%s\n", "'$(docker ps -af id=${d##*/} --format "table {{.Names}}" | tail -1)'", $5, $6, $7, $14) }'; done
清理指定docker的日志(xxxx為docker容器的名稱):
echo > /data/docker/containers/$(docker ps --no-trunc -aqf 'name=xxxx')/*-json.log
docker鏡像的導(dǎo)入導(dǎo)出:
1》源機(jī)器與目標(biāo)機(jī)器系統(tǒng)一致的情況下:(比如都是amd)
1、在源機(jī)器,鏡像打包:docker save 鏡像名稱:鏡像版本 >打包后的文件名字.tar
2、在目標(biāo)機(jī)器,將鏡像加載到Docker:docker load -i 打包后的文件名字.tar(例子:docker load -i minio.tar)
2》源機(jī)器與目標(biāo)機(jī)器系統(tǒng)不一致的情況下:(源機(jī)器是amd,目標(biāo)機(jī)器是arm)
容器內(nèi)安裝需要的命令:(由于linux上一些命令在容器內(nèi)沒有,可以在Dockerfile里編寫,也可以手動(dòng)添加,此為手動(dòng)添加)
1、進(jìn)入容器 docker exec -it 容器id /bin/bash
2、執(zhí)行安裝命令

浙公網(wǎng)安備 33010602011771號(hào)