Docker Hub
- Docker Hub 是一个由 Docker 公司运行和管理的镜像云存储库
- Docker Hub 官方地址:hub.docker.com/
- 通过 Dcoker Hub 可以搜索收录的公告镜像,也可以进行镜像仓库的私有化部署
- Docker Hub 官网镜像中带有
Offical Image
标志的,为官方发布,更加安全可靠
MySQL
- 打开 Docker Hub 官网,搜索 MySQL 镜像,推荐选择带有
Offical Image
标志的
2. 在Description
中可查看描述文档,在Tags
中可查看版本号
3. 拉取镜像
1 | shell复制代码docker pull mysql:8.0.27 |
4. MySQL 容器基本启动命令
1 | shell复制代码docker run |
使用-e
指定环境变量,MYSQL_ROOT_PASSWORD
指定 root 用户密码
使用-p
指定端口映射,将容器内 3306 映射到宿主机 3306,以供外部访问
5. MySQL 容器数据持久化
1 | shell复制代码docker run |
使用-v
指定数据卷映射,MySQL 容器的数据默认存放在/var/lib/mysql
,通过数据卷映射到宿主机目录(可自动创建),方便备份
MySQL 容器被持久化到宿主机目录,再次挂载时,会自动加载原库表数据以及数据库密码设置
6. MySQL 容器自定义配置文件
MySQL 容器对配置文件进行了拆分,主配置文件为/etc/mysql/my.cnf
,使用!includedir
引入了/etc/mysql/conf.d
和 /etc/mysql/mysql.conf.d
,mysql.conf.d
存放了默认配置文件,conf.d
留给用户自定义配置,一般只需要映射 /etc/mysql/conf.d
下mysql.cnf
即可
1 | shell复制代码docker run |
7. MySQL 容器常见启动环境变量
MYSQL_DATABASE
指定启动时创建的数据库名称
MYSQL_USER
、MYSQL_PASSWORD
指定MYSQL_DATABASE
的用户和密码
可通过在 /docker-entrypoint-initdb.d 下映射 SQL 脚本或 Shell 脚本文件来初始化 MySQL 数据库
Nginx
- 拉取 Nginx 镜像
1 | shell复制代码docker pull nginx:1.21.3 |
- 运行 Nginx web 服务
1 | shell复制代码docker run |
作为 Web 服务器时,Nginx 容器 Web 资源默认存放在容器内的/usr/share/nginx/html
,映射到宿主机目录可用于部署前端系统
3. 配置 Nginx 反向代理
Nginx 容器配置文件默认存放在容器内的/etc/nginx/nginx.conf
若没有该配置文件模板,可启动一个临时容器,用docker cp
命令复制到宿主机
1 | shell复制代码docker run --name tmp-nginx -d nginx |
修改nginx.conf
,添加反向代理配置如下
1 | ini复制代码upstream myservers { |
启动 Nginx 容器
1 | shell复制代码docker run |
Redis
- 拉取 Redis 镜像
1 | shell复制代码docker pull redis:6.2.5 |
同一个版本号有不同版本,如6.2.5-buster
、[6.2.5-alpine]
,区别是基于的 Linux 系统不同,在大小和内置工具上有差异
2. 启动 Redis
1 | shell复制代码docker run --name some-redis -p 6379:6379 -d redis:tag |
- 开启数据持久化
快照方式(默认开启),快照文件是容器内/data
目录的dump.rdb
文件
1 | shell复制代码docker run |
开启 AOF 持久化,减少丢数据的风险,最多丢失一秒内的数据
1 | shell复制代码docker run |
AOF 文件名为appendonly.aof
,默认生成到/data
目录
4. 自定义 Redis 配置文件
新建redis.conf
配置文件,添加自定义配置项
1 | shell复制代码# 设置为 0.0.0.0,即开启远程访问 |
启动 Redis 并加载自定义redis.conf
1 | shell复制代码docker run |
RabbitMQ
- 在 Docker Hub 上搜索 RabbitMQ
拉取 RabbitMQ 镜像
1 | shell复制代码docker pull rabbitmq:3.8.23-management |
版本号中带有 management 的镜像是带有 Web 管理界面
不带 management 的镜像只能通过命令操作
2. 启动 RabbitMQ 基本服务
1 | shell复制代码# 15672 Web 管理页面端口 |
Web 管理界面默认的账户密码为 guest/guest
3. 启动 RabbitMQ 并指定管理员初始账号密码
1 | shell复制代码 # RABBITMQ_DEFAULT_USER 用户名 |
- 启动时创建一个虚拟主机
1 | shell复制代码# RABBITMQ_DEFAULT_VHOST 指定虚拟主机名称 |
- 自定义 RabbitMQ 配置
默认配置文件是/etc/rabbitmq/rabbitmq.conf
自定义配置文件启动,并持久化/var/lib/rabbitmq
运行目录
1 | shell复制代码docker run \ |
浏览器访问宿主机的 15672 端口,可进入登录界面,使用配置的账户登录即可
本文转载自: 掘金