Docker 日常操作笔记(开发最常用命令)
真正开发里:
Docker 最常干的事情其实就几个:
拉镜像 启动容器 查看容器 停止容器 删除容器 进入容器 查看日志掌握这些:
基本就能满足日常开发。
一、Docker 工作流程(先建立概念)
Docker 日常操作:
本质就三步:
镜像(Image) ↓ 创建容器(Container) ↓ 运行程序二、查看本地镜像
dockerimages作用:
查看本机已有镜像输出:
REPOSITORY TAG IMAGE ID CREATED SIZE redis latest xxxxxxx 3 days ago 117MB mysql latest xxxxxxx 5 days ago 600MB三、下载镜像(pull)
例如下载 Redis:
dockerpull redis下载 MySQL:
dockerpull mysql四、为什么 pull 后就能运行
因为:
镜像本身就包含: 程序 + 环境例如:
Redis镜像 已经自带Redis环境所以:
不用自己安装。
五、运行容器(最重要)
启动 Redis
dockerrun redisDocker 会:
创建容器 ↓ 启动 Redis六、后台运行(重点)
正常:
dockerrun redis终端会被占用。
所以开发里:
一般:
dockerrun-dredis-d 是什么
detached意思:
后台运行七、查看运行中的容器
dockerps输出:
CONTAINER ID IMAGE COMMAND STATUS xxxxxx redis ... Up 10 minutes八、查看所有容器
dockerps-a包括:
运行中的 已停止的九、容器名字(重点)
默认:
Docker 会随机名字:
happy_cat busy_dog很乱。
所以:
一般会:
dockerrun--namemyredis redis–name
作用:
给容器取名字后面操作:
更方便。
十、端口映射(非常重要)
例如:
dockerrun-d-p6379:6379 redis什么意思
宿主机端口 : 容器端口为什么必须映射
Redis 在容器内部。
如果不映射:
外面访问不到6379:6379
表示:
电脑6379 ↓ 映射到 容器6379这样:
Go 程序:
localhost:6379才能连接。
十一、查看容器日志
dockerlogs 容器名例如:
dockerlogs myredis十二、持续查看日志
类似:
tail -f命令
dockerlogs-fmyredis十三、停止容器
dockerstop 容器名例如:
dockerstop myredis十四、启动已停止容器
dockerstart myredis十五、重启容器
dockerrestart myredis十六、删除容器
dockerrm容器名例如:
dockerrmmyredis十七、为什么删不掉
如果容器正在运行:
无法删除必须:
先停止:
dockerstop myredis再删除。
十八、强制删除
dockerrm-fmyredis-f
表示:
force 强制删除十九、删除镜像
dockerrmi redis二十、进入容器(重点)
很多时候:
需要:
进入容器内部例如:
- 看文件
- 执行命令
- 进入 Redis CLI
命令
dockerexec-itmyredisbash二十一、exec 是什么
在容器内部执行命令二十二、-it 是什么
这个新人非常容易懵。
-i
保持输入流-t
开启终端合起来
进入交互式终端二十三、为什么有时候 bash 不存在
有些镜像:
非常轻量。
没有:
bash这时候:
用:
dockerexec-itmyredissh二十四、进入 Redis 容器后
可以:
redis-cli进入 Redis 命令行。
二十五、查看容器详细信息
dockerinspect 容器名例如:
dockerinspect myredis可以查看:
- IP
- 端口
- 配置
- 挂载
二十六、容器自动删除
dockerrun--rmredis–rm
表示:
容器停止后自动删除适合:
临时测试二十七、数据卷(重点)
如果:
直接删容器:
数据也没了所以:
需要:
数据持久化挂载目录
dockerrun-d\-v/mydata:/data\redis什么意思
宿主机目录 ↓ 映射到 容器目录这样:
容器删了:
数据还在。
二十八、MySQL 最经典启动方式
真实开发:
经常这样:
dockerrun-d\-p3306:3306\--namemysql\-eMYSQL_ROOT_PASSWORD=123456\mysql二十九、-e 是什么
环境变量例如:
MYSQL_ROOT_PASSWORD设置 MySQL 密码。
三十、Docker 日常操作核心流程
真正开发:
天天都在:
docker pull docker run docker ps docker logs docker exec docker stop docker rm循环。
三十一、后端开发最常见容器
你以后:
大概率天天开:
| 服务 | 用途 |
|---|---|
| mysql | 数据库 |
| redis | 缓存 |
| nginx | 网关 |
| rabbitmq | 消息队列 |
| minio | 对象存储 |
三十二、最后总结
Docker 日常操作核心:
| 命令 | 作用 |
|---|---|
| docker images | 查看镜像 |
| docker pull | 下载镜像 |
| docker run | 创建运行容器 |
| docker ps | 查看容器 |
| docker logs | 查看日志 |
| docker exec | 进入容器 |
| docker stop | 停止容器 |
| docker rm | 删除容器 |
真正重要理解:
镜像是模板 容器是真正运行的程序开发里:
Docker 最大作用:
快速搭环境 统一环境 快速部署