本文整理出在Docker中常用的命令,一是可以做一个备忘录的作用,二是也可以作为一个复习的文章。 Docker镜像、容器、日志等等相关命令都涵盖在内,文内带有操作图,不难的哦。 很喜欢一句话:“八小时内谋生活,八小时外谋发展。”
共勉
地点
:湖南邵阳
作者
:博主
查看Docker 版本号
docker --version
查看Docker 相关信息
docker info
查看Docker帮助命令
docker --help
可以查看到所有Docker 命令,不过对英语不太好的同学不太友善哈。🙃~~(我也是)~~
列出本地镜像
1、查看全部镜像
docker images
2、查看全部镜像含中间映像层
docker images -a
3、其他
docker images -q #仅显示镜像id
docker history -H imageserver #显示指定镜像的历史创建;参数:-H 镜像大小和日期 imageserver 我自己做的一个镜像
搜索MySQL的镜像
docker search mysql
#带上版本号搜索 docker search mysql:5.7
#docker search <镜像名>:<版本号>
-**-filter=stars:**只显示 starts>=600 的镜像
docker search --filter=stars=600 mysql
–automated :只列出 AUTOMATED=OK 的镜像
docker search --automated mysql
下载最新官方镜像(此处以下载redis 做例子)
docker pull redis #不指定版本号时,默认拉取最新版本 即latest
docker pull redis:5.0.7# 指定版本号 即加一个引号 后说明版本号即可。
下载仓库所有Redis镜像
docker pull -a redis
下载网上公开的仓库镜像
docker pull bitnami/redis #即别人制作的公开放到网上的镜像
删除单个镜像
注意:
(不强制删除,必须先删除此镜像相关的容器,才能删除此镜像)
##相当于:docker rmi redis:latest
docker rmi redis
强制删除(即有运行的容器,也强行删除,但并不会删除正在运行的容器[已亲测])
##强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
批量删除(不同镜像之间用空格间隔)
docker rmi -f redis mysql nginx
删除本地全部镜像
docker rmi -f $(docker images -q) #$() 可以简单理解为sql 语句中嵌套语句
此处只做一个最简单的例子,一句两句说不清。牵扯Dockerfile文件书写。
(1) 编写我们的Dockerfile文件
from centos:latest
ENV mypath /usr
WORKDIR $mypath
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD /bin/bash
(2) 构建镜像
docker build -f /myDocker/Dockerfile2 -t mycentos:1.3
#如果 dockerfile文件在当前目录 命令可简写为
docker build -t mycentos:1.3 .
解释:
1、docker build 为docker中镜像构建命令
2、-f :指明dockerfile文件的路径
3、-t :指定镜像生成名字 版本号为可选。
4、.
最后的小数点意思是在当前目录下, 即Dockerfile所在目录
1、查看正在运行的容器
docker ps
2、查看正在运行的容器的ID
docker ps -q
3、查看正在运行+历史运行过的容器
docker ps -a
4、获取正在运行的容器redis的 IP
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis
5、查看容器元信息(此处以redis举例)
docker inspect myredis #myredis 是我的redis 容器名
在启动集群的时候比较有效,单机的话就~~。
启动暂停的容器
docker start <容器名||容器id>
重启容器
docker restart redis #<容器名||容器id>
此处以启动redis容器举例
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 000415
##top支持 ps 命令参数,格式:
docker top [OPTIONS] CONTAINER [ps OPTIONS]
##列出redis容器中运行进程
docker top redis ##查看所有运行容器的进程信息
停止一个运行中的容器
docker stop myredis #stop 后 跟容器名或容器id 都可以
杀掉一个运行中的容器
docker kill myredis #同上
删除一个已停止的容器
docker rm myreis #同上
删除一个运行时的容器
docker rm -f myredis #同上
删除全部容器
docker rm -f $(docker ps -a -q) #$() 你可以理解sql 语句中的嵌套语句
基本格式:docker logs [OPTIONS] CONTAINER
OPTIONS:可带参数 见下图。
举例:
docker logs <容器id>
docker logs --tail 200 CONTAINER_ID
docker logs --since 30m CONTAINER_ID
dockere logs -t --since "2021-07-31T10:35:10" d0e #d0e是我的容器id
docker logs -t --since "2021-07-31T10:35:10" --until "2021-07-31T10:36:10" CONTAINER_ID
又是继续内卷的一天啊,昨天看群聊,里面的大佬凌晨了还在讨论问题,讲真,我有点怕啦。这还邀不要人睡啦啊。☠😇
一起 共勉
or🛌。(我还是觉得🛌更爽啊,唉,不过不能选啊)