使用 Docker 快速部署开发环境

前言

作为一位合格的程序猿(工程师),在日常工作中,除了写各种语言的代码,配置各种语言的开发环境及 IDE 外,我们往往还需要依赖其他第三方服务,如:服务器,数据库,缓存,搜索,MQ 等等。这些服务的安装各式各样,对于不熟悉的人来说极为复杂,各种繁琐的配置对于有强迫症的人来说又不想把机器配置搞的乱七八糟,这时我们可以选择使用 Docker 来快速搭建开发环境,相对弱化复杂的安装过程,与服务器配置过程。

如何安装 Docker

使用如下命令,简单快速配置安装,兼容大多数Linux系统:

1
$ curl -sSL https://get.docker.com | sh

这个命令效果同上,只是一个国内脚本加速:

1
curl -sSL https://get.daocloud.io/docker | sh

Docker 安装 Mongodb

启动 4.0.14 版本 Mongodb ,并设置 admin 库的账号密码,如下命令:

1
2
3
4
5
docker run -d --network host --name dev-mongo \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=hackerdom \
-p 27017:27017 \
mongo:4.0.14

如果需要指定 Mongodb 版本,请在这里选择你需要的版本,并修改 mongo:4.0.14 中的版本即可。

Docker 安装 Mysql

启动 8.0.18 版本 Mysql ,并设置 root 库的账号密码,如下命令:

1
2
3
4
docker run -d --name dev-mysql \
-e MYSQL_ROOT_PASSWORD=hackerdom \
-p 3306:3306 \
mysql:8.0.18

如果需要指定 Mysql 版本,请在这里选择你需要的版本,并修改 mysql:8.0.18 中的版本即可。

Docker 安装 Redis

启动 5.0.7 版本 Redis ,并设置密码,如下命令:

1
2
3
docker run -d --name dev-redis \
-p 6379:6379 \
redis:5.0.7 --requirepass "hackerdom"

如果需要指定 Redis 版本,请在这里选择你需要的版本,并修改 redis:5.0.7 中的版本即可。

Docker 安装 Kafka & Kafka Console

在此推荐一个开源项目 fast-data-dev 可以快速部署Kafka,具体操作如下:

1
2
3
4
5
6
7
8
docker run -d --name fast-data-dev \
-p 2181:2181 \
-p 3030:3030 \
-p 8081-8083:8081-8083 \
-p 9581-9585:9581-9585 \
-p 9092:9092 \
-e ADV_HOST=[VM_EXTERNAL_IP] \
lensesio/fast-data-dev:latest

注意![VM_EXTERNAL_IP] 需要改为你的服务器IP。

之后全套的Kakfa监控等,如下图:
avatar

如何安装 Docker Compose

这个东西是一个轻量级容器编排工具,如何快速安装,执行如下两个命令即可:

1
2
3
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

为什么要装这个,有些比较复杂的中间件,可以使用这个快速安装,下面开始介绍快速部署一些中间件。

Docker 安装 RocketMQ & RocketMQ Console

首先,找一个目录创建一个文件,文件名 docker-compose.yml 文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
version: '3.5'
services:
rmqnamesrv:
image: foxiswho/rocketmq:server
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- ./data/logs:/opt/logs
- ./data/store:/opt/store
networks:
rmq:
aliases:
- rmqnamesrv
rmqbroker:
image: foxiswho/rocketmq:broker
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
volumes:
- ./data/logs:/opt/logs
- ./data/store:/opt/store
- ./broker.conf:/etc/rocketmq/broker.conf
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
command: mqbroker -c /etc/rocketmq/broker.conf
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqbroker
rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rmqconsole
ports:
- 8080:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
depends_on:
- rmqnamesrv
networks:
rmq:
aliases:
- rmqconsole
networks:
rmq:
name: rmq
driver: bridge

然后在创建一个配置文件,broker.conf ,文件内容如下(将其与上面文件放在同一个目录下):

1
2
3
4
5
6
7
8
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 240
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1=[VM_EXTERNAL_IP]

注意![VM_EXTERNAL_IP] 需要改为你的服务器IP。

最关键的一步来了,上面的内容都准备好之后在 docker-compose.yml 文件所在目录下执行如下命令:

1
docker-compose up -d

Docker 安装 PostgreSQL

启动 12.1 版本 PostgreSQL ,并设置密码,如下命令:

1
2
3
4
docker run -d --name dev-postgreSql \
-e POSTGRES_PASSWORD=hackerdom \
-e POSTGRES_USER=admin \
-p 5432:5432 postgres:12.1

如果需要指定 PostgreSQL 版本,请在这里选择你需要的版本,并修改 postgres:12.1 中的版本即可。

今天就先到这里,改天在更新。

----本文结束 感谢您的阅读----