一,Docker 操作命令
Docker服务相关命令
查看日志
# 命令
docker logs [参数] 容器
-f:日志流动输出。
-t:展示时间戳。
--tail:从日志末尾显示的行数。
# 使用示例
# 容器最新 100 条日志
docker logs -f -t --tail 100 [容器]
查看Docker内存占用
# 命令
docker stats [参数] [容器...]
-a:查看所有容器的内存占用(默认只展示运行的容器)
# 使用示例
docker stats
将文件拷贝进主机
# 命令
docker cp 容器id:/文件目录/文件名 /主机文件目录
查看镜像构建历史
# 命令
docker history [镜像]
查看容器映射的主机端口
# 命令
docker port [容器]
二,镜像操作命令
搜索镜像
# 命令
docker search [参数]
-f / --filter:根据过滤条件搜索。
# 使用示例
docker search mysql
docker search mysql -f=STARS=3000
- NAME: 镜像仓库源的名称;
- DESCRIPTION: 镜像的描述;
- OFFICIAL: 是否 docker 官方发布;
- stars: 类似 Github 里面的 star;
- AUTOMATED: 自动构建;
下载镜像
# 命令
docker pull 镜像名[:tag] # 不写tag默认最新
运行镜像
# 命令
docker run [参数] 镜像名:tag
--name:指定容器的名称,如果正在运行该名称的容器,会报错。
--rm:用完即删除,通常用来测试。
-d:后台方式运行。
-it:使用交互方式运行,可以进入容器查看内容。
-e:指定运行环境。
-p:随机指定端口。
-p:指定容器的端口,如:-p 8080:8080。还可以有以下写法:
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
-v, --volume 挂载容器卷
## 使用示例
# 运行多个MySQL镜像
docker run -p 3306:3306 -d --name mysql3306 -e MYSQL_ROOT_PASSWORD=admin mysql:5.7
docker run -p 3307:3306 -d --name mysql3307 -e MYSQL_ROOT_PASSWORD=admin mysql:5.7
列出主机上的镜像
# 命令
docker images [参数] [镜像[:标签]]
-a:显示所有镜像。
-q:只显示 ID。
# 使用示例
docker images
- REPOSITORY:表示镜像的仓库源
- TAG :镜像的标签
- IMAGE ID :镜像的ID
- CREATED :镜像的创建时间
- SIZE :镜像的大小
删除镜像
docker rmi -f [容器] #删除指定镜像
docker rmi -f [容器] [容器] [容器] #删除多个镜像
构建镜像
可以使用 docker commit 命令构建镜像,更推荐用 DockerFile 构建 。
# 命令
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Options:
-a, --author string 作者
-c, --change list 使用 Dockerfile 指令来创建镜像
-m, --message string 提交信息
-p, --pause 在 commit 时,将容器暂停
# 使用示例
docker commit -a="mrhelloworld" -m="jdk11 and tomcat9" centos7 mycentos:7
三,容器操作命令
容器运行命令
# 运行关闭的容器
docker start [容器]
# 停止容器
docker stop [容器]
# 重启容器
docker restart [容器]
# 杀掉容器
docker kill [容器]
查看容器列表
# 命令
docker ps [参数]
-a:查看所有容器(包括正在运行的和已经停止的)。
-n:显示最近创建的容器,设置显示个数。
-q:只显示容器的编号。
# 使用示例
# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
# 显示最近创建的 2 个容器
docker ps -a -n=2
查看容器元数据
# 命令
docker inspect [容器]
查看容器中进程信息
# 命令
# 容器必须启动状态
docker top [容器]
删除容器
# 命令
docker rm [参数] 容器 [容器...]
-f:强制删除。
# 使用示例
# 删除指定容器(不能删除正在运行的容器)
docker rm 1aaf76d85b9e
# 强制删除指定容器
docker rm -f 1aaf76d85b9e
# 删除所有容器。先使用 docker ps -aq 获取所有容器的 ID,再调用 docker rm -f 递归删除。
docker rm -f $(docker ps -aq)
# 删除所有容器。使用管道符 | 获取 Docker 相关的所有容器 ID 并使用 docker rm -f 删除。
docker ps -a -q|xargs docker rm -f
进入正在运行的容器
# 命令一:这种进入方式是单独开了一个新进程的方式
# 推荐使用,因为此退出容器终端,不会导致容器的停止
docker exec [参数] 容器 路径
-d:后台运行。
-it:交互模式进入
# 命令一:使用示例
docker exec -it [容器] /bin/bash
docker exec -it mysql /bin/bash
# 命令二:这种进入方式没有开启新的进程
docker attach 容器
四,常用启动命令
MySQL
# 指定端口、目录挂载、密码
docker run --name mysql3316 -p 3316:3306 \
-v /java/mysql/volumes/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
Redis
# 指定端口、目录挂载、密码
docker run -p 6379:6379 --name myredis \
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf \
-v /usr/local/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes --requirepass "密码"
评论区