Docker 容器镜像删除

docker commit了一个镜像之后想删除旧的镜像,出现以下报错

Error response from daemon: conflict: unable to delete 6f8214d56bfc (cannot be forced) - image has dependent child images

解决思路:

docker save保存容器

docker images

docker save REPOSITORY > XX.tar

删除镜像容器

docker ps -a

docker rm CONTAINER ID

docker images

docker rmi IMAGE ID

最后再导入回去

docker load < XX.tar

1.停止所有的container,这样才能够删除其中的images:

docker stop $(docker ps -a -q)

如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)

2.查看当前有些什么images

docker images

3.删除images,通过image的id来指定删除谁

docker rmi <image id>

想要删除untagged images,也就是那些id为<None>的image的话可以用

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

要删除全部image的话

docker rmi $(docker images -q)

 

docker:安装mysql多个
1.首先安装docker

  参照一下网址安装docker

  docker:安装

  参照安装一个mysql

  docker:安装mysql 

2.创建文件
# mkdir /data
# mkdir /data/mysql
# mkdir /data/mysql/data5.6
# mkdir /data/mysql/data5.7
# mkdir /data/mysql/data8.0
3.添加镜像
# docker pull mysql:5.6
# docker pull mysql:5.7
# docker pull mysql:8.0
4.启动镜像
# docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql5.6 --restart always -v /data/mysql/data5.6:/var/lib/mysql -p 3306:3306 mysql:5.6
# docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql5.7 --restart always -v /data/mysql/data5.7:/var/lib/mysql -p 3307:3306 mysql:5.7
# docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name mysql8.0 --restart always -v /data/mysql/data8.0:/var/lib/mysql -p 3308:3306 mysql:8.0
5.打开端口
//开启防火墙
# systemctl start firewalld
//开启3306端口
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
//开启3307端口
# firewall-cmd --zone=public --add-port=3307/tcp --permanent
//开启3308端口
# firewall-cmd --zone=public --add-port=3308/tcp --permanent
//重启防火墙
# systemctl restart firewalld.service
6.本地连接测试



7.如果mysql是 8 版本以上应该会出一下错误

连接Docker启动的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: ÕÒ²»µ½Ö¸¶¨µÄÄ£¿é¡£

解决方案
  1.进入mysql容器

    docker exec -it mysql /bin/bash

  2.进入mysql

    mysql -uroot -p123456

  3.修改密码

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

LINUX 简单的,但只有天才才能知道他的简单

 

 

docker images : 列出本地镜像
docker pull : 从镜像仓库中拉取或者更新指定镜像

docker run :创建一个新的容器并运行一个命令
-d: 后台运行容器,并返回容器ID
-p: 端口映射,格式为:主机(宿主)端口:容器端口
--name="nginx-lb": 为容器指定一个名称
-v:目录映射,格式为:主机目录:容器目录

docker rm :删除一个或多个容器
docker start :启动一个或多少已经被停止的容器
docker stop :停止一个运行中的容器
docker kill :杀掉一个运行中的容器(强制)
docker restart :重启容器
docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。

docker logs : 获取容器的日志
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志

docker exec -i -t  mynginx /bin/bash:在容器mynginx中开启一个交互模式的终端,即通过SSH协议进入容器

docker ps : 列出容器
-a :显示所有的容器,包括未运行的。

docker cp:拷贝主机docker cp /www/runoob 96f7f14e99ab:/www/