Skip to content

Docker 常用服务安装

说明

创建容器主要的是知道服务需要配置的环境变量(账号密码)、映射配置文件或数据目录

MYSQL安装

  • 拉去镜像
shell
docker pull mysql
  • 创建容器
shell
docker run -d --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=333666 \
-v /AppService/app/mysql:/var/lib/mysql mysql

Postgis安装

postgis 是集成好gis插件的postgresql数据库

  1. 拉去镜像
shell
docker pull postgis/postgis:10-2.5
  1. 启动镜像
shell
docker run --name postgis \
-e POSTGRES_PASSWORD=cwljxf1025. \
-d  -p 5432:5432  \
-v /AppService/app/postgis:/var/lib/postgresql/data \
postgis/postgis:10-2.5
  1. 启动扩展
    1. 连接后创建数据库启动postgis扩展
shell
# 启用扩展
CREATE EXTENSION postgis;

// 查看版本
SELECT postgis_version();

Nginx安装

  • 拉取镜像
shell
docker pull nginx
  1. 启动命令
    1. 需要在宿主机中创建好映射目录
shell
docker run -d -p 8082:80 --name runoob-nginx-test-web \
-v ~/nginx/www:/usr/share/nginx/html \
-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v ~/nginx/conf/conf.d:/etc/nginx/conf.d \
-v ~/nginx/logs:/var/log/nginx nginx
  • /usr/share/nginx/html: 存放静态文件的目录
  • /etc/nginx/nginx.conf:存放配置文件的目录
  • /var/log/nginx:存放日志的目录
  • /etc/nginx/conf.d: 其它配置文件

ps: 可以查看docker容器章节,从容器内拷贝nginx.conf文件到宿主机中。

Redis安装

  • 拉取镜像
shell
docker pull redis
  • 创建容器
shell
docker run -itd --name redis -p 6379:6379 -v /my-redis-data:/data redis --appendonly yes  --requirepass 333666
  1. –appendonly yes: 启动持久化
  2. –requirepass: 启动安全验证

Mongo 安装

  • 拉去镜像
shell
docker pull mongo
  • 创建容器
    • 第一种方式创建是不指定root用户和密码
shell
docker run --name mongodb -p 27017:27017 \
-v /AppService/app/mongodb/db:/data/db \
-v /AppService/app/mongodb/log:/data/log -d mongo --auth
  - 创建root用户
shell
// mongo shell
mongo


// 切换到admin数据库
use admin

// 创建root用户
db.createUser({user:'root',pwd:'123456',roles:[{role:'root',db:'admin'}]})
  • 第二种方式
shell
docker run -d -p 27017:27017 --name mongodb \
-v /AppService/app/mongodb/db:/data/db \
-v /AppService/app/mongodb/log:/data/log \
-e MONGO_INITDB_ROOT_USERNAME=myrootuser \
-e MONGO_INITDB_ROOT_PASSWORD=mypassword \
mongo

WARNING

  1. -v /AppService/app/mongodb/db: 表示将容器内 /data/db 挂载到宿主机目录
  2. -v /AppService/app/mongodb/log: 挂载日志目录
  3. –auth: 开启验证(可以不用添加,mongodb默认是不需要验证的)

ps: mongo创建数据库命令(需要新增一条数据才是真正创建好文档)

shell
db.createUser({
    user: "myuser",
    pwd: "mypassword",
    roles: [
        { role: "readWrite", db: "mydatabase" },
        { role: "dbAdmin", db: "mydatabase" }
    ]
})

kafka和zookeeper安装

可以看我博客中的记录(docker安装zookeeper和kafka)