Docker常用命令记录

项目发布时需要用到docker,本文对docker常用的命令作个简单记录。

1. 基本命令

1
2
3
4
5
docker version # 查看docker版本
docker images # 查看所有已下载镜像,等价于:docker image ls 命令
docker container ls # 查看所有容器
docker ps #查看正在运行的容器
docker image prune # 清理临时的、没有被使用的镜像文件。-a, --all: 删除所有没有用的镜像,而不仅仅是临时文件;

2. 拉取镜像

1
2
3
docker search mysql # 查看mysql相关镜像
docker pull mysql:5.7 # 拉取mysql镜像
docker image ls # 查看所有已下载镜像

3. 删除镜像

比如我们要删除我们下载的 mysql 镜像。

通过 docker rmi [image] (等价于docker image rm [image])删除镜像之前首先要确保这个镜像没有被容器引用(可以通过标签名称或者镜像 ID删除)。通过我们前面讲的docker ps命令即可查看。

1
2
3
➜  ~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4cd691d9f80 mysql:5.7 "docker-entrypoint.s…" 7 weeks ago Up 12 days 0.0.0.0:3306->3306/tcp, 33060/tcp mysql

可以看到 mysql 正在被 id 为 c4cd691d9f80 的容器引用,我们需要首先通过 docker stop c4cd691d9f80 或者 docker stop mysql暂停这个容器。

然后查看 mysql 镜像的 id

1
2
3
➜  ~ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 f6509bac4980 3 months ago 373MB

通过 IMAGE ID 或者 REPOSITORY 名字即可删除

1
docker rmi f6509bac4980 #  或者 docker rmi mysql 

4. docker修改镜像名称以及保存镜像文件

4.1 修改镜像名

首先输入docker images查看要修改的镜像的image id,使用tag命令进行修改名称及版本号:

1
docker tag f6509bac4980 mysql:5.7

4.2 保存镜像,便于镜像转移

1
docker save f6509bac4980 -o /data/docker_mysql57.tar

参考

1.Docker | JavaGuide

2.docker修改镜像名称以及保存镜像文件