docker清理命令prune

Docker使用中会产生很多冗余的镜像、容器和数据卷,那么怎么来清理这些冗余呢?

系统环境:

虚拟机:Parallels Desktop 16 for Mac  .Version 16.1.2(49151)
操作系统:CentOS Linux release 8.4.2105
Docker:20.10.7, build f0df350

CentOS8-neofetch

常用清理命令参考:

清理所有未使用的镜像、容器和数据卷(不懂该命令请慎用):

docker system prune

查看所有悬挂状态的镜像:

docker image ls -f dangling=true

清理所有悬挂状态的镜像:

docker image prune

OR

docker image rm $(docker image ls -f dangling=true -q)

删除所有停止状态的容器:

docker container prune

删除所有容器(你的所有容器会被清空,慎用)

docker rm -f $(docker ps -aq)

OR

docker container rm -f $(docker container ls -aq)

删除不再使用的数据卷

docker volume rm $(docker volume ls -q)

OR

docker volume prune

删除构建缓存

docker builder prune

Docker运行mysql设置密码问题

Docker运行mysql时,必须提供一个初始化密码,但是有的开发者是本地测试使用,所以不想加密码该如何操作呢?

系统环境:

虚拟机:Parallels Desktop 16 for Mac  .Version 16.1.2(49151)
操作系统:CentOS Linux release 8.4.2105
Docker:20.10.7, build f0df350
MySQL:5.7

CentOS8-neofetch

解决方案:

执行以下命令即可,连接mysql不需要填写密码便能连接上

docker run --name mysql57 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-p 3306:3306 \
-d mysql:5.7

参数参考:

运行容器时设置root密码为:123456

docker run --name mysql57 \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-d mysql:5.7

运行容器时创建一个新的用户,并将root密码设置为随机,一般使用场景为单个项目数据库使用唯一的账号密码来管理:

docker run --name=mysqlBlog \
-e MYSQL_DATABASE=blog \
-e MYSQL_USER=blog \
-e MYSQL_PASSWORD=blog \
-e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-p 3306:3306 \
-d mysql:5.7

Docker容器中如何使用vi或者vim编辑器

Docker容器没有安装vi或者vim编辑器,导致提示:command not found

系统环境:

虚拟机:Parallels Desktop 16 for Mac  .Version 16.1.2(49151)
操作系统:CentOS Linux release 8.4.2105
Docker:20.10.7, build f0df350

CentOS8-neofetch

解决方案:

依次执行以下命令即可

apt-get update
apt-get install vim -y