上一篇文章中《Docker系列(一)docker desktop安装使用&运行redis容器》,安装了docker,并进行了简单测试,本文针对docker命令进行一个梳理。
docker命令非常多,非常灵活,本文总结下常用的命令,方便查阅。更多命令,可参考官方文档:https://docs.docker.com/reference/
一. docker帮助命令说明
先说明比较重要的两点:
1.1docker所有的命令,都是以 docker开头 。比如 :
docker ps
docker image
1.2帮助命令
如果忘记了命令具体用法,可以使用docker的帮助:
docker --help
输出内容很多,但我们要学会看懂docker帮助命令,这里只截取一部分进行总结:
- -v, --version Print version information and quit
这一行注释,意思是说 -v参数表示打印docker的版本号,但是其中的 '- -version’又是干嘛的?实际很简单,就是说 docker -v 等同于 docker --version 。 - image Manage images
上图第二出标红的命令,属于管理命令,管理命令就是前缀不带“-”,但是命令后要加其他参数,只是输入docker image 是不行的,如果不知道加什么参数,可以使用如下帮助命令:docker image --help ,输出:
docker image ls :列出所有镜像文件;
docker image rm :删除镜像文件,后面还可以加参数,如果不知道参数,可继续使用 --help,
以此类推。
二.常用命令总结
以下记录常用的基础命令。
docker信息相关
安装docker软件后,运行以下任意一个命令,如果正常输出,说明docker安装启动成功。
查看信息:
#查看docker应用基本信息
docker info
查看版本:
#查询详细版本信息
docker version
#查询简单版本信息
docker -v
或者
docker --version
镜像相关
镜像相关命令是 docker image ,具体在后面加子命令。
查看已下载的镜像文件:
##查看已下载的镜像文件
docker image ls 等同于 docker images
下载镜像:
#下载mysql镜像,版本为8.0.25
docker pull mysql:8.0.25 等同于 docker image pull mysql:8.0.25
## 下载最新版mysql
docker pull mysql 等同于 docker pull mysql:latest
删除镜像
#删除mysql镜像8.0.25版本,如果不指定版本,则默认删除最新版,也就是latest
docker rmi mysql:8.0.25 等同于 docker image rm mysql:8.0.25
#删除所有镜像
docker rmi -f $(docker images -qa)
构建镜像:
$ docker build -t myimage:1.0 -f /path/to/a/Dockerfile .
#说明
-t tag的意思,后面指定镜像名字:tag
-f file的意思,后面指定Dockerfile的文件
注意最后的最后的 . 表示上下文路径
容器相关
查看容器:
#查看运行中的容器
docker ps 等同于 docker container ls
#查看所有容器,包括非运行中的容器
docker ps -a
启动容器:
#语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
#启动mysql
docker run --name my_mysql -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.25
#说明
--name my_mysql :为容器指定一个名称,不写的话会随机生成名称;
-p 3306:3306 :指定端口映射,格式为:主机(宿主)端口:容器端口;
-d 后台运行容器,这个参数一般都加上;
-e MYSQL_ROOT_PASSWORD=123456 设定root用户密码,mysql必须得有这个,不然起不来;
注意:启动时指定的镜像如果本地不存在,docker会默认自动从仓库下载,然后在启动。
下面,我们都使用my_mysql容器为例,记录命令样例。
#启动一个或多个已经被停止的容器
docker start my_mysql
停止容器:
#停止一个运行中的容器
docker stop my_mysql
#重启容器
docker restart my_mysql
#杀掉一个运行中的容器
docker kill my_mysql
#停止所有运行的容器
docker stop $(docker ps -q)
删除容器:
docker rm my_mysql
#删除所有停止容器
docker rm $(docker ps -aq)
#停止并删除所有容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
在运行的容器中执行命令:
## 在容器中开启交互模式的终端,这样就等于进入了容器
docker exec -it my_mysql bash
#说明
-it 等同于 -i -t ,-t的作用是开启伪终端;
##退出容器
exit
查看具体一个容器信息:
##获取容器/镜像的元数据
docker inspect my_mysql
##查看容器进程信息
docker top my_mysql
## 查看容器日志信息
docker logs my_mysql