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数据库
- 拉去镜像
shell
docker pull postgis/postgis:10-2.5
- 启动镜像
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
- 启动扩展
- 连接后创建数据库启动postgis扩展
shell
# 启用扩展
CREATE EXTENSION postgis;
// 查看版本
SELECT postgis_version();
Nginx安装
- 拉取镜像
shell
docker pull nginx
- 启动命令
- 需要在宿主机中创建好映射目录
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
- –appendonly yes: 启动持久化
- –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
- -v /AppService/app/mongodb/db: 表示将容器内 /data/db 挂载到宿主机目录
- -v /AppService/app/mongodb/log: 挂载日志目录
- –auth: 开启验证(可以不用添加,mongodb默认是不需要验证的)
ps: mongo创建数据库命令(需要新增一条数据才是真正创建好文档)
shell
db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [
{ role: "readWrite", db: "mydatabase" },
{ role: "dbAdmin", db: "mydatabase" }
]
})