1.镜像操作
# 搜索镜像
docker search java
# 查看所有镜像
docker images
# 删除镜像
docker rmi 94fae7da05d6
#删除所有dangling镜像(没有Tag的镜像):
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
# 查看镜像历史,通过此命令可以看到该镜像的层数、大小、创建过程、Dockerfile的一行命令对应了一层。
# 构建的镜像包括拉取下来的镜像,基本都是由很多中间层镜像组成,如语言运行时的基础镜像、操作系统基础镜像。
docker image history mysql:5.7.34 --format "{{.CreatedSince}}:{{.CreatedBy}}" --no-trunc
# 修改本地镜像的名称和标签
docker tag hello-world hello-world_new
#推送镜像 以aliyun acr为例子,注意命名空间要一致,要先登录
docker login --username={用户名} registry.cn-shenzhen.aliyuncs.com
docker pull registry.cn-shenzhen.aliyuncs.com/lpdali/rabbitmq
2.容器操作
# 查看正在运行的容器
docker ps
# 同步宿主机时间到容器
docker cp /etc/localtime $ContainerName:/etc/
# 查看所有的容器
docker ps -a
# 启动容器
#. -d 在后台运行
#. --name 自定义容器名,-p 用于指定服务器与Docker容器进行端口映射的端口
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12536 -d mysql:5.7.34
#停止容器
docker stop 容器id
#强制停止容器
docker kill $ContainerName
#删除所有关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
#重启容器
docker start 容器id
# 查看mysql容器的Ip等信息
docker inspect mysql
#查看容器日志
docker logs mysql
#查看容器资源使用情况
docker stats
# 删除容器 d95d82a7cf72为 CONTAINER ID ,添加 --force参数可以强制删除(无需新停止再删除)
docker rm d95d82a7cf72
#删除已经停止的容器
docker rm $(docker ps -a -q)
3.卷(volume)操作
#创建mysql的数据卷,用来数据库的持久化,防止容器删除时,数据丢失
docker volume create mysql-data
#查看所有的数据卷
docker volume ls
#查看某个数据卷信息
docker volume inspect mysql-data
#数据卷的使用
docker run --name mysql -v mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34
#删除所有dangling数据卷(即无用的 volume)
docker volume rm $(docker volume ls -qf dangling=true)
4.其它操作
#进入某个容器(mysql)/bin/bash不存在时可以尝试/bin/sh
docker exec -it mysql_3307 /bin/bash
# 清理未使用的镜像[1.已停止的容器 container 2.未被任何容器所使用的卷 volume 3.未被任何网络所关联的网络network 4.所有悬空的镜像 image]
docker system prune
# 磁盘占用分析 [查询镜像、容器、本地卷等空间占用情况]
docker system df -v
# 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
网友评论