前言
本文介绍 Docker 常用的一些命令,Docker 常用配置可参考Docker 实用配置技巧。
Docker 管理
查看服务端和客户端版本
docker version
查看服务端和客户端配置和参数信息
docker info
镜像操作
Docker 镜像可以看作一个模板。
查看本地镜像列表
docker images
使用 -q
参数仅获取镜像 ID,可以通过管道传递给其他后续命令。
-f
参数可以筛选镜像。
# 查找无标签的镜像,如构建失败时的中间镜像
docker images --filter "dangling=true"
# 根据镜像标签进行筛选
docker images --filter "label=version=1.0"
# 根据镜像名称筛选
docker images --filter "reference=mysql:*"
before 和 since 提供了时间筛选,后面接镜像名称,用于筛选在这个镜像之前创建的镜像或这个镜像之后创建的镜像。
docker images --filter "before=ubuntu:18.04"
--format
参数可以控制输出格式,使用 Go 语言的模版语法,支持如下的占位符:
- .ID:镜像 ID
- .Repository:镜像名
- .Tag:镜像版本
- .Digest:镜像摘要
- .CreatedAt:镜像创建时间
- .Size:镜像大小
# 仅输出镜像名称和版本
docker images --format "{{.Repository}}:{{.Tag}}"
删除镜像
删除指定镜像。
# 可指定镜像名:版本或镜像 ID
docker rmi mysql:8
删除所有无标签的镜像。
docker image prune
构建镜像
docker build -t myimage:1.0 .
其中,-t
参数用于指定镜像名称和版本,最后的点代表当前路径,会查找当前路径下的 Dockerfile 文件。如果需要指定其他文件名,使用 -f
参数。
导入导出
# 将镜像导出到文件
docker save -o centos.tar centos:7
# 从文件或标准输入导入镜像
docker load -i centos.tar
添加标签
tag 命令给镜像添加一个新的名称和版本。
docker tag centos:7 mycentos:7.9
容器操作
Docker 容器可以看作镜像的一个运行实例。
启动容器
run 是最重要的启动容器的命令。
docker run --name mysql -d mysql:8
其中 --name
用于指定容器名称,不指定则随机生成。-d
表示后台运行并打印容器 ID,否则在当前进程前台执行。镜像名称后面可以接要传递的命令或参数。
-t
和 -i
可以进入容器的控制台,执行一些命令,--rm
在退出后直接删除容器。
docker run --rm -ti centos:7 bash
查看本地容器
docker ps
也支持 -q
、 -f
和 --format
参数。
# 筛选名称
docker ps --filter "name=mysql"
# 筛选状态 running,created, exited 等
docker ps --filter "status=exited"
# 筛选标签
docker ps --filter "label=com.example.app=web"
# 筛选端口
docker ps --filter "expose=9000"
--format
支持下面的占位符:
- .ID:容器ID
- .Image:镜像ID
- .Command:执行的命令
- .CreatedAt:容器创建时间
- .RunningFor:运行时长
- .Ports:暴露的端口
- .Status:容器状态
- .Names:容器名称
- .Label:容器的标签
- .Mounts:容器挂载的卷
- .Networks:容器的网络名称
- .Repository:镜像名称
- .Size:镜像大小
- .Tag:镜像标签
- .CreatedAt:创建图像的时间
docker ps --format "{{.ID}}\t{{.Names}}"
删除容器
删除指定的容器。
# 可指定容器名或容器 ID
docker rm mysql
删除所有停止的容器。
docker container prune
文件复制
docker cp
命令可以将容器内的文件复制到宿主机中,或者反过来。
docker cp mysql:/var/lib/mysql/test.txt /home/user/test.txt
容器状态变更
# 停止容器
docker stop mysql
# 启动容器
docker start mysql
# 重启容器
docker restart mysql
在容器中执行命令
exec 在运行的容器中执行命令。可使用 -ti
参数进入容器的控制台。
docker exec -ti mysql bash
获取容器信息
# 获取容器的详细信息
docker inspect mysql
# 获取容器暴露的端口
docker port mysql
# 获取容器的进程
docker top mysql
查看容器日志
docker logs mysql
可以用 -tail <行数>
获取最后的几行, -f
参数可以持续获取日志,类似 tail -f
。
查看容器的文件变更
查看容器的文件变更信息。
docker diff mysql
创建镜像
commit 命令可将容器当前的状态创建为镜像,类似于 git commit。
docker commit -m "message" mysql mysql1:1.0
导入导出
# 将容器的文件导出到文件
docker export -o out.tar mysql
# 导入文件创建镜像
docker import out.tar mysql1:1.0
远程仓库操作
登陆
私有仓库如果需要登陆可以使用 login 命令。
docker login -u username hub.mydocker.com
如果不想每次都登陆,可以配置自动登陆令牌,参考Docker 实用配置技巧。
搜索镜像
搜索 Docker 镜像仓库。
docker search mysql
拉取/推送镜像
# 拉取镜像
docker pull mysql:8
# 将本地的镜像推送到仓库
docker push hub.mydocker.com/my/image:1.0
标签:总结,容器,--,mysql,ID,常用命令,镜像,Docker,docker
From: https://blog.csdn.net/wwtg9988/article/details/140747114