1、docker基础命令
启动docker:systemctl start docker
关闭docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker 运行状态:systemctl status docker
查看docker 版本号信息:docker version | docker info
docker 帮助命令:docker --help | docker 命令 --help
2、docker镜像命令:
查看docker 镜像列表:docker images
搜索镜像:
docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像
拉取镜像:不加tag 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker pull 镜像名
docker pull 镜像名:tag
运行镜像:
docker run 镜像名
docker run 镜像名:Tag
删除镜像:当前镜像没有被任何容器使用才可以删除
删一个:docker rmi -f 镜像名/镜像ID
删多个:docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
全部删:docker rmi -f $(docker images -aq)
保存镜像:
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
docker save tomcat -o /myimg.tar (保存到了 /)
加载镜像:任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
docker load -i 镜像保存文件位置
3、docker容器命令:
查看正在运行容器列表:docker ps
查看所有容器:docker ps -a
运行一个容器:
# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行) --name 给要运行的容器 起的名字 /bin/bash 交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
docker run -it -d --name redis001 redis:5.0.5 /bin/bash
补充:查看redis运行使用断口
netstat -untlp
容器端口与服务器端口映射:p 宿主机端口:容器端口
docker run -itd --name redis002 -p 8888:6379 redis:5.0.5 /bin/bash
进入容器方式一
docker exec -it 容器名/容器ID /bin/bash
docker exec -it redis001 /bin/bash
tips:docker exec -it mynginx /bin/sh /root/runoob.sh
运行容器内的脚本
docker run -it --rm --entrypoint="/bin/bash" create_npz:1.0 -c "bash” 指定进入容器后的路径
进入容器方式二:推荐使用 exec 方式
docker attach 容器名/容器ID
从容器内 退出到自己服务器中:
#-----直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭
exit
# 优雅提出 — 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q
停止容器:docker stop 容器ID/容器名
重启容器:docker restart 容器ID/容器名
启动容器:docker start 容器ID/容器名
kill 容器:docker kill 容器ID/容器名
容器文件拷贝—无论容器是否开启 都可以进行拷贝
#docker cp 容器ID/名称:文件路径 要拷贝到外部的路径 | 要拷贝到外部的路径 容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径 容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称: 容器内路径
查看容器日志:
docker logs -f --tail=要查看末尾多少行 默认all 容器ID
数据挂载:
-v 宿主机文件存储位置:容器内文件位置
# 运行一个docker redis 容器 进行 端口映射 两个数据卷挂载 设置开机自启动
docker run -d -p 6379:6379
–name redis505
–restart=always
-v /var/lib/redis/data/:/data
-v /var/lib/redis/conf/:/usr/local/etc/redis/redis.conf
redis:5.0.5 --requirepass “password”
更换容器名:
docker rename 容器ID/容器名 新容器名
4、提交一个镜像:
docker commit -m=“提交信息” -a=“作者信息” 容器名/容器ID 提交后的镜像名:Tag
5、docker 运维命令:
sudo docker info | grep "Docker Root Dir”
du -hs /var/lib/docker/
docker system df
删除 无用的容器和 镜像:
docker rm docker ps -a | grep Exited | awk '{print $1}'
docker rmi -f docker images | grep '<none>' | awk '{print $3}'
清除所有无容器使用的镜像:此命令只要是镜像无容器使用(容器正常运行)都会被删除
docker system prune -a
查找大文件:
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr
查找指定docker使用目录下大于指定大小文件:
find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr |grep '/var/lib/docker/overlay2/*’
停止所有容器:
docker stop $(docker ps -a |awk ‘{print $1}’|tail -n +2)
删除所用容器:
docker rm $(docker ps -a |awk ‘{print $1}’|tail -n +2)
参考:https://blog.youkuaiyun.com/leilei1366615/article/details/106267225
https://blog.youkuaiyun.com/leilei1366615/article/details/106269231