Docker 日常操作笔记(开发最常用命令)

真正开发里:

Docker 最常干的事情其实就几个:

txt 复制代码
拉镜像
启动容器
查看容器
停止容器
删除容器
进入容器
查看日志

掌握这些:

基本就能满足日常开发。


一、Docker 工作流程(先建立概念)

Docker 日常操作:

本质就三步:

txt 复制代码
镜像(Image)
↓
创建容器(Container)
↓
运行程序

二、查看本地镜像

bash 复制代码
docker images

作用:

txt 复制代码
查看本机已有镜像

输出:

txt 复制代码
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        latest    xxxxxxx        3 days ago    117MB
mysql        latest    xxxxxxx        5 days ago    600MB

三、下载镜像(pull)

例如下载 Redis:

bash 复制代码
docker pull redis

下载 MySQL:

bash 复制代码
docker pull mysql

四、为什么 pull 后就能运行

因为:

txt 复制代码
镜像本身就包含:
程序 + 环境

例如:

txt 复制代码
Redis镜像
已经自带Redis环境

所以:

不用自己安装。


五、运行容器(最重要)


启动 Redis

bash 复制代码
docker run redis

Docker 会:

txt 复制代码
创建容器
↓
启动 Redis

六、后台运行(重点)

正常:

bash 复制代码
docker run redis

终端会被占用。

所以开发里:

一般:

bash 复制代码
docker run -d redis

-d 是什么

txt 复制代码
detached

意思:

txt 复制代码
后台运行

七、查看运行中的容器

bash 复制代码
docker ps

输出:

txt 复制代码
CONTAINER ID   IMAGE   COMMAND   STATUS
xxxxxx         redis   ...       Up 10 minutes

八、查看所有容器

bash 复制代码
docker ps -a

包括:

txt 复制代码
运行中的
已停止的

九、容器名字(重点)

默认:

Docker 会随机名字:

txt 复制代码
happy_cat
busy_dog

很乱。

所以:

一般会:

bash 复制代码
docker run --name myredis redis

--name

作用:

txt 复制代码
给容器取名字

后面操作:

更方便。


十、端口映射(非常重要)

例如:

bash 复制代码
docker run -d -p 6379:6379 redis

什么意思

txt 复制代码
宿主机端口 : 容器端口

为什么必须映射

Redis 在容器内部。

如果不映射:

txt 复制代码
外面访问不到

6379:6379

表示:

txt 复制代码
电脑6379
↓
映射到
容器6379

这样:

Go 程序:

go 复制代码
localhost:6379

才能连接。


十一、查看容器日志

bash 复制代码
docker logs 容器名

例如:

bash 复制代码
docker logs myredis

十二、持续查看日志

类似:

txt 复制代码
tail -f

命令

bash 复制代码
docker logs -f myredis

十三、停止容器

bash 复制代码
docker stop 容器名

例如:

bash 复制代码
docker stop myredis

十四、启动已停止容器

bash 复制代码
docker start myredis

十五、重启容器

bash 复制代码
docker restart myredis

十六、删除容器

bash 复制代码
docker rm 容器名

例如:

bash 复制代码
docker rm myredis

十七、为什么删不掉

如果容器正在运行:

txt 复制代码
无法删除

必须:

先停止:

bash 复制代码
docker stop myredis

再删除。


十八、强制删除

bash 复制代码
docker rm -f myredis

-f

表示:

txt 复制代码
force
强制删除

十九、删除镜像

bash 复制代码
docker rmi redis

二十、进入容器(重点)

很多时候:

需要:

txt 复制代码
进入容器内部

例如:

  • 看文件
  • 执行命令
  • 进入 Redis CLI

命令

bash 复制代码
docker exec -it myredis bash

二十一、exec 是什么

txt 复制代码
在容器内部执行命令

二十二、-it 是什么

这个新人非常容易懵。


-i

txt 复制代码
保持输入流

-t

txt 复制代码
开启终端

合起来

txt 复制代码
进入交互式终端

二十三、为什么有时候 bash 不存在

有些镜像:

非常轻量。

没有:

txt 复制代码
bash

这时候:

用:

bash 复制代码
docker exec -it myredis sh

二十四、进入 Redis 容器后

可以:

bash 复制代码
redis-cli

进入 Redis 命令行。


二十五、查看容器详细信息

bash 复制代码
docker inspect 容器名

例如:

bash 复制代码
docker inspect myredis

可以查看:

  • IP
  • 端口
  • 配置
  • 挂载

二十六、容器自动删除

bash 复制代码
docker run --rm redis

--rm

表示:

txt 复制代码
容器停止后自动删除

适合:

txt 复制代码
临时测试

二十七、数据卷(重点)

如果:

直接删容器:

txt 复制代码
数据也没了

所以:

需要:

txt 复制代码
数据持久化

挂载目录

bash 复制代码
docker run -d \
-v /mydata:/data \
redis

什么意思

txt 复制代码
宿主机目录
↓
映射到
容器目录

这样:

容器删了:

数据还在。


二十八、MySQL 最经典启动方式

真实开发:

经常这样:

bash 复制代码
docker run -d \
-p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql

二十九、-e 是什么

txt 复制代码
环境变量

例如:

txt 复制代码
MYSQL_ROOT_PASSWORD

设置 MySQL 密码。


三十、Docker 日常操作核心流程

真正开发:

天天都在:

txt 复制代码
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 删除容器

真正重要理解:

txt 复制代码
镜像是模板
容器是真正运行的程序

开发里:

Docker 最大作用:

txt 复制代码
快速搭环境
统一环境
快速部署
相关推荐
05候补工程师4 小时前
【考研英语一·翻译专攻】长难句翻译的“分治策略”:从底层拆分到逻辑重构(1997-2010真题高频陷阱与红笔纠偏)
经验分享·笔记·考研·重构
有味道的男人5 小时前
Open Claw对接小红书笔记详情
数据库·笔记
摇滚侠5 小时前
Java 零基础全套教程,数据结构与集合源码,笔记 168-174
java·数据结构·笔记
学机械的鱼鱼5 小时前
PX4与ROS2通信原理与仿真环境搭建教程
笔记·学习·px4·ros2
patrickpdx5 小时前
2019年中国国家队选拔赛第17题
笔记
嫣然细雨红尘路6 小时前
LangChain学习笔记(一)
笔记·学习·langchain
被遗忘的旋律.6 小时前
RK3588笔记(一)——ping通 + imx6ull项目移植
笔记
Brilliantwxx6 小时前
【C++】 认识STL set与map(基础接口+题目OJ运用)
开发语言·数据结构·c++·笔记·算法
05候补工程师6 小时前
【线性代数】核心考点复习笔记:二次型配方法、施密特正交化步骤与特征值经典题型详解
经验分享·笔记·线性代数·考研·算法