Docker 常用命令汇总(上)
一、Docker 基础命令
1、启动 docker
systemctl start docker
2、关闭 docker
systemctl stop docker
3、重启 docker
systemctl restart docker
4、开机启动 docker
systemctl enable docker
5、查看 docker 运行状态
systemctl status docker
如果在运行中,输入命令后,会看到绿色的 active:
不再运行时,输入命令后,会发现绿色的 active 消失了,还会提示当前的 docker 状态是 inactive(dead)(死亡):
6、查看 docker 版本信息
docker version
7、查看 docker 系统信息,包括镜像和容器数
docker info
8、docker 帮助命令
如果忘记了某些命令,可以输入如下命令:
docker --help
如果忘记了某个特定命令,比如说忘记了拉取命令,则可以输入如下指令:
docker pull --help
二、Docker 镜像命令
1、查看自己服务器中 docker 镜像列表
docker images
或
docker image ls
查看镜像、容器、数据卷所占用的空间:
docker system df
2、搜索镜像
docker search [镜像名]
比如可以输入这样的命令:docker search --filter=STARS=9000 mysql
3、拉取镜像(从 Docker 镜像仓库获取镜像)
docker pull [镜像名]
docker pull [镜像名]:tag
不加 tag(版本号),即默认拉取 docker 仓库中该镜像的最新版本,相当于命令 docker pull [镜像名]:latest。比如说拉取最新版的 mysql,则可以输入如下命令:
docker pull mysql
加 tag,则是拉取指定版本。比如说拉取 mysql 5.7.30,则可以输入如下命令:
docker pull mysql:5.7.30
4、运行镜像
docker run [镜像名]
docker run [镜像名]:tag
例如拉取一个 tomcat ,运行以下命令:
docker run tomcat
可以使用 Ctrl+c 退出。
下面用实例解释:几个参数:
# -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。 # 这里打算进入 bash 执行一些命令并查看返回结果,因此需要交互式终端。 # --rm:这个参数的意思是,容器退出后随之将其删除。默认情况下,除了排障需求,退出的容器并不会立即删除,除非手动 docker rm。 # 这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。 # ubuntu:18.04:这里指用 ubuntu:18.04 镜像为基础来启动容器。 # bash:放在镜像名后的是命令,这里希望有个交互式 Shell,因此用的是 bash。 docker run -it --rm ubuntu:18.04 bash
5、删除镜像
当前镜像没有被任何容器使用才可以删除。
# 删除一个镜像 docker rmi -f 镜像名/镜像ID # 删除多个镜像:其镜像ID或镜像用空格隔开即可 docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID # 删除全部镜像:-a 意思为显示全部,-q 意思为只显示ID docker rmi -f $(docker images -aq)
# 删除所有仓库名为 redis 的镜像 docker image rm $(docker image ls -q redis) # 删除所有在 mongo:3.2 之前的镜像 docker image rm $(docker image ls -q -f before=mongo:3.2)
强制删除镜像:
docker image rm 镜像名/镜像ID
6、保存镜像
可以将我们的镜像保存为 tar 压缩文件,这样方便镜像转移和保存,然后,可以在任何一台安装了 docker 的服务器上加载这个镜像。
docker save 镜像名/镜像ID -o 镜像要保存的位置和名字
例如:docker save tomcat -o /myimg.tar
保存镜像任务执行完毕,我们可以看一下指定位置是否有该 tar
7、加载镜像
任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像。
docker load -i 镜像保存文件位置
可以先将之前的 tomcat 镜像删除掉,因为一开始就已经保存了
查看镜像,测试镜像功能是否正常。
我们可以把解压的镜像 run 一下:
8、镜像标签
有时候,我们需要对一个镜像进行分类或版本迭代操作。比如一个微服务已经打为 docker 标签,但是根据环境进行区分为 develop 环境与 alpha 环境,这时候,我们就可以使用 tag ,来对镜像做一个标签添加,从而进行区分;版本迭代逻辑也一样,根据不同的 tag 进行区分。
注:develop:开发环境。alpha:用于进行初步测试和验证的环境,常常是在软件开发的早期阶段使用。
app:1.0.0 基础镜像 # 分离为开发环境 app:develop-1.0.0 # 分离为 alpha 环境 app:alpha-1.0.0
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag 源镜像名;TAG 想要生成新的镜像名:新的TAG
# 如果省略 TAG,则会为镜像默认打上 latest TAG
docker tag aaa bbb
# 上面的操作等价于下面这行语句
docker tag aaa:latest bbb:latest
举例如下:
# 我们根据镜像 quay.io/minio/minio 添加一个新的镜像,名为 aaa,标签 Tag 设置为 1.2.3 docker tag quay.io/minio/minio:1.2.3 aaa:1.2.3 # 我们根据镜像 app-user:1.0.0 添加一个新的镜像,名为 app-user,标签 Tag 设置为 alpha-1.0.0 docker tag app-user:1.0.0 app-user:alpha-1.0.0
注:文强哥精品集,祝各位使用愉快!