侧边栏壁纸
博主头像
再见理想博主等级

只争朝夕,不负韶华

  • 累计撰写 112 篇文章
  • 累计创建 64 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Docker基操-常用命令

再见理想
2022-05-24 / 1 评论 / 0 点赞 / 312 阅读 / 1,245 字

一,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 "密码"
0

评论区