将正在运行的容器设为自启动
# docker update --restart=always 容器名或容器ID docker update --restart=always <CONTAINER ID> # 例如将tomcat设为自启动 docker update --restart=always tomcat
将自启动的容器取消自启动
# docker update --restart=no 容器名或容器ID docker update --restart=no <CONTAINER ID> # 例如取消tomcat的自启动 docker update --restart=no tomcat
docker-compose命令通过指定文件运行
启动服务 docker-compose -f docker-compose.yml up -d 停止服务 docker-compose -f docker-compose.yml stop 停止并删除服务 docker-compose -f docker-compose.yml down
查看docker占用多少CPU、内存等资源
docker stats

停止、删除所有容器、镜像
docker ps -a -q # 查看所有容器ID docker stop $(docker ps -a -q) # stop停止所有容器
docker ps -a | grep Exited | awk '{print $1}' |xargs docker start #启动所有已停止的容器 docker rm $(docker ps -a -q) # remove删除所有容器
docker rmi $(docker images -q) #删除全部的images
docker rmi 1574f4d271db -f #强制删除镜像文件
docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况
docker system df

reclaimable可回收
这个命令将清理整个系统,并且只会保留真正在使用的镜像,容器,数据卷以及网络,因此需要格外谨慎 docker system prune -a -f 用以清理不再使用的docker镜像。执行docker image prune默认会清除"悬空"镜像【就是既没有标签名也没有容器引用的镜像】 docker image prune -a -f 删除所有停止状态的容器 docker container prune 清空所有未使用的构建缓存 docker builder prune -f 清空所有的构建缓存 docker builder prune --all
nerdctl命令
删除未使用的容器 nerdctl container prune 这个命令会删除所有已经停止运行的容器。 删除悬挂的镜像 nerdctl image prune 这个命令会删除所有未被任何容器使用的镜像。 清理数据卷 nerdctl volume prune 这个命令会删除所有未被任何容器使用的数据卷。 清理 Builder 缓存 nerdctl builder prune 这个命令会删除所有未被使用的 Builder 缓存。 清理网络 nerdctl network prune 这个命令会删除所有未被使用的网络。 设置自动清理任务 您可以设置一个定期执行的 cron 任务或 systemd 服务,定期调用上述命令来自动清理 Docker 资源: 0 0 * * * nerdctl system prune -a 这个 cron 任务会在每天 0 点执行完整的 Docker 资源清理。 除了以上命令,nerdctl 还提供了一些其他有用的命令: nerdctl system events: 查看 Docker 事件日志 nerdctl system info: 查看 Docker 系统信息
# 使用默认的 docker-compose.yml 文件
nerdctl compose up -d
# 指定自定义 Compose 文件
nerdctl compose -f /path/to/custom-compose.yml up -d
停止并移除 Compose 文件中的容器
nerdctl compose down # 删除容器和网络,保留数据卷
nerdctl compose down -v # 删除容器、网络和数据卷
nerdctl compose ps
构建和启动服务:
nerdctl compose up --build -d
nerdctl compose logs -f
查看 Compose 文件配置
nerdctl compose config
crictl命令
crictl 是 Kubernetes 中用于与容器运行时(如 Containerd、CRI-O)交互的命令行工具,遵循 CRI(容器运行时接口)规范。以下是其核心功能、安装配置及常用命令的总结: 常用命令 1. 容器管理 命令 功能描述 示例 crictl ps 查看运行中的容器 crictl ps -a(包含已退出容器) crictl start <ID> 启动已停止的容器 crictl start container_id crictl stop <ID> 停止运行中的容器 crictl stop container_id crictl exec -i -t<ID> <CMD> 在容器内执行命令 crictl exec -i -t c1 ls 2. 镜像管理 命令 功能描述 示例 crictl images 列出所有镜像 crictl images crictl pull <NAME> 拉取镜像 crictl pull busybox crictl rmi <ID> 删除镜像 crictl rmi <IMAGE_ID> crictl inspecti <ID> 查看镜像详细信息 crictl inspecti busybox 3. Pod 管理 命令 功能描述 示例 crictl pods 列出所有 Pod crictl pods --namespace kube-system crictl runp <POD_CONFIG> 创建并启动 Pod 沙箱 crictl runp pod-config.json 4. 调试与信息 命令 功能描述 示例 crictl inspect <ID> 查看容器/POD 详细信息 crictl inspect pod_id crictl logs <ID> 查看容器日志 crictl logs c1 --since 10m crictl info 显示运行时信息 crictl info 高级操作 1. 清理无用镜像: crictl rmi --prune # 删除未被任何容器引用的镜像层 2. 资源监控: crictl stats # 实时查看容器资源使用情况(CPU、内存等) 3. 事件流: crictl events # 实时流式输出容器运行时事件
docker inspect
查看容器映射等信息
https://blog.csdn.net/winy_lm/article/details/77980529 查看、删除容器
docker ps -a 查看所有容器
docker rm 删除容器
docker images 查看所有镜像
docker rmi 删除镜像
要先查看该image有无使用才能删除
进入一个容器
docker exec -ti archery /bin/bash
docker inspect 查看容器IP
docker cp test.txt container:/home/
# 将当前目录的test.txt文件复制到container容器的/home目录下
docker cp container:/home/test.txt /home/
# 将container容器内文件复制到宿主机
docker logs mytest -f --tail 30
查看mytest容器最近的30条日志
docker run -it -d -p 8082:8080 -v /usr/web/gaoxi-log:/opt/tomcat/gaoxi-log --network=host --restart=always --name gaoxi-user-1 chaimm/tomcat:1.1
--name:指定容器的名字
-p:指定容器的端口映射 -p 8082:8080 表示将容器的8080端口映射到宿主机的8082端口上 ,映射多个端口使用 -p 8082:8080 -p 8083:8081
-v:指定容器数据卷的映射 xxx:yyy 表示将容器yyy目录映射到宿主机的xxx目录上,从而访问宿主机的xxx目录就相当于访问容器的yyy目录。
chaimm/tomcat:1.1:表示容器所对应的镜像
docker run -it -v /home/java/logs/:/home/java/logs/ -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name=matchCenter --restart=always --network=host 镜像名 /etc/rc.local
docker exec -it -u 0 containerId bash
或者
docker exec -it -u root <container_id> /bin/bash
以root身份进入容器
docker run -d --name mysql -v /usr/local/mysql_conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql_data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-v 挂载宿主机目录和 docker容器中的目录
-d 后台运行
-p 映射容器端口号和宿主机端口号
-e 环境参数
查看容器和宿主机的映射信息
docker inspect 容器名
docker导入导出镜像、容器
镜像
docker save -o /kibana.tar docker.elastic.co/kibana/kibana
docker load < /home/save.tar
容器
docker export <CONTAINER ID> > /home/export.tar
docker import - busybox-1-export:latest
https://www.jianshu.com/p/8408e06b7273
https://blog.csdn.net/guizaijianchic/article/details/78324646
docker 制作镜像
https://www.jianshu.com/p/cf7ccf362a5a
docker commit -m 'my_mysql' mysql8-1 my_mysql:v1.0
关于Docker目录挂载的总结
Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。
譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:
# docker run -it -v /test:/soft centos /bin/bash
这样在容器启动后,容器内会自动创建/soft的目录。通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。
进入容器并执行命令
docker exec myContainer bash -c "cd /home/myuser/myproject && git fetch ssh://gerrit_server:29418/myparent/myproject ${GERRIT_REFSPEC} && git checkout FETCH_HEAD";
卸载docker
yum install list|grep docker

yum remove docker-common.x86_64 -y
yum remove docker-client.x86_64 -y
查看image 镜像修改历史
docker image history --no-trunc +image ID
浙公网安备 33010602011771号