一、docker基础命令:
启动docker
systemctl start docker
设置开机自启动
systemctl enable docker
重启docker
systemctl restart docker
关闭docker
systemctl stop docker
查看docker运行状态————如果是在运行中 输入命令后 会看到绿色的active (running)
systemctl status docker
docker 帮助命令
docker --help
docker pull --help 查找携带参数信息
二、docker镜像命令:
查看 docker 镜像列表
docker images
搜索镜像
docker search 镜像名
docker search --filter=STARS=9000 mysql #搜索 STARS >9000的 mysql 镜像
拉取远程镜像
docker pull 远程仓库ip:端口/imageName:tag 不写tag默认拉取latest,若无latest版本则报错!
运行镜像
docker run 镜像名
docker run 镜像名:Tag
删除镜像————当前镜像没有被任何容器使用才可以删除
docker rmi -f 镜像名/镜像ID
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
docker rmi -f $(docker images -aq) -a 意思为显示全部, -q 意思为只显示ID
强制删除镜像
docker image rm 镜像名称/镜像ID
保存镜像(将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像)
docker save 镜像名/镜像ID -o 主机路径全名
docker save tomcat -o /mytomcat.tar
加载镜像(任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像)
docker load -i 压缩镜像路径全名
docker load -i /mytomcat.tar
三、docker 容器命令:
查看正在运行的容器列表
docker ps
查看所有容器(包含正在运行 和 已停止的)
docker ps -a
运行容器(随机端口)
docker run -it -d --name aliasName --restart=always 镜像名:Tag /bin/bash
- -it 表示 与容器进行交互式启动
- -d 表示后台运行容器(守护式运行,持久化运行容器)
- --name 给要运行的容器 起的名字
- --restart=always 容器随docker服务启动而自动启动
- /bin/bash 交互式运行路径
- 运行容器的端口只是在容器内开辟的端口,宿主机是无法直接访问容器端口的
- 需要容器做端口映射(宿主机端口 与 容器端口 绑定),宿主机才能访问容器端口
启动容器
docker start 容器ID/容器名
停止容器
docker stop 容器名/容器ID
重启容器
docker restart 容器ID/容器名
kill 容器
docker kill 容器ID/容器名
删除容器
docker rm -f 容器名/容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
docker rm -f $(docker ps -aq) 删除全部容器
运行容器(容器端口与服务器端口映射)
-p 宿主机端口:容器端口
docker run -itd --name redis002 --restart=always -p 8888:6379 redis:5.0.5 /bin/bash
进入容器
docker exec -it 容器名/容器ID /bin/bash
docker exec -it redis001 /bin/bash
成功进入容器后命令行前缀显示规则:
[user@user ~]# ==> user@容器ID:/data#
退出容器
exit 直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭
Ctrl + p + q 优雅退出 无论是否添加-d 参数 执行此命令容器都不会被关闭
容器文件拷贝
docker cp 容器ID/名称:容器内路径 容器外路径
docker cp 容器外路径 容器ID/名称:容器内路径
容器数据挂载(数据卷挂载)
-v 宿主机文件存储位置:容器内文件位置 -v命令可以多次使用,即一个容器可以同时挂载多个文件
-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -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 update --restart=always 容器Id/容器名
docker container update --restart=always 容器Id/容器名
更换容器名
docker rename 容器ID/容器名 新容器名
查看容器日志
docker logs -f --tail=rows(rows:要查看末尾多少行,默认all) 容器ID
四、docker仓库操作:
提交构建一个新镜像
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
拉取镜像
docker pull 镜像名 #拉取最新latest版本
docker pull 镜像名:tag #拉取指定版本
五、运维操作:
查看docker工作目录
docker info | grep "Docker Root Dir"
查看docker磁盘占用总体情况
du -hs /var/lib/docker/
查看Docker的磁盘使用具体情况
docker system df
删除无用的 容器 和 镜像
docker rm `docker ps -a | grep Exited | awk '{print $1}'` 删除异常停止的容器
docker rmi -f `docker images | grep '<none>' | awk '{print $3}'` 删除名称或标签为none的镜像
清除所有无容器使用的镜像
docker system prune -a 只要是镜像无容器使用(容器非正常运行)都会被删除,包括容器临时停止