# 使用Docker搭建开发环境

### PostgreSQL
```sh
docker pull postgres
docker run --name mypostgres -d -p 5432:5432 -e POSTGRES_PASSWORD=123456 postgres
```

### MySQL 5.7
```sh
docker pull mysql:5.7
docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
```

```sh title="持久化数据"
docker run --name mysql -v /home/moatkonbase/data/mysql/data:/var/lib/mysql -v /home/moatkonbase/data/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysqlrootpwd -d mysql:lts
```

### Redis
```sh
docker pull redis:latest
docker run --name redis -p 6379:6379 -d redis:latest redis-server --appendonly yes --requirepass 'sDF234sdf#@@$@$fdd'
```
> 注意: 启动redis时,windows上 --requirepass 的密码可以使用""包起来,mac上要使用''包起来

### Kafka

<LinkCard
    title="Kafka安装及使用"
    description=""
    href="/software-engineer/mq/kafka/use"
/>

### RocketMQ

<LinkCard
    title="RocketMQ安装及使用"
    description=""
    href="/software-engineer/mq/rocketmq/use"
/>

### <div id="es-docker-install">ES安装</div>
```sh
docker pull elasticsearch:7.14.0
docker run --name es7.14 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.14.0
```


### docker设置代理
```
# 编辑文件,没有则新增
vim /etc/systemd/system/docker.service.d/http-proxy.conf

# 填写内容

[Service]
Environment="HTTP_PROXY=http://10.4.1.182:7890"
Environment="HTTPS_PROXY=http://10.4.1.182:7890"

# 按需
Environment="NO_PROXY=localhost,127.0.0.1"

# 重启

sudo systemctl daemon-reload
sudo systemctl restart docker

```

### 将用户添加到 docker 组

```sh
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

# 刷新组权限（或者重新登录/重启）
newgrp docker

# 验证是否生效
docker ps
```
注意：添加到 docker 组后需要重新登录才能完全生效，或者使用 newgrp docker 临时刷新。