docker安装MySQL、Redis、Mongo、Nginx
docker安装MySQL、Redis、Mongo、Nginx
这种东西,菜鸟上一大把。我这里只是把这几个安装方法收集起来而已。
废话不多说,开始!
一. 安装MySQL
1.拉取mysql镜像
docker pull mysql
这里可以通过:[版本号]的方式拉取指定版本的镜像。不指定则默认拉取最新版本latest
2.运行容器
$ docker run -itd --name [容器名称] -p [外部端口]:[容器内端口] --restart=always -e MYSQL_ROOT_PASSWORD=[mysql的root密码] [mysql镜像的名字]
因为我拉的最新版本的mysql,所以镜像名字就是mysql,不需要加版本号。完整的示例就像这样:
docker run -itd --name mysql -p 3906:3306 --restart=always -e MYSQL_ROOT_PASSWORD=rootpwd123 mysql
意思就是
· 以mysql这个镜像启动一个名为mysql的容器(--name mysql)
· 并把容器内部的3306映射到外面宿主机的3906(-p 3906:3306)
· 再设置了mysql服务随容器启动而启动(--restart=always)
· 然后设置了mysql的root密码为rootpwd123
这里说一下啊,对于暴露在外网的端口号,一定要养成修改默认端口的习惯。
3.进入容器
docker exec -it [容器名字或者id] /bin/bash
进去后,你就可以用mysql -u root -p进行登录mysql了,别忘了自己设置的密码哈。
这里单独说一下,mysql 的远程访问问题。有的mysql启起来以后不能远程访问,比如你宿主机启动了mysql容器,但是你本地的Navicat却连不上。这时你就要检查一下是否开启了mysql的远程连接。
怎么看呢,进入容器并登录mysql,然后查询
select host from user where user='root'
要确保host有一个值是%就可以了。没有的话就update改一下就好。
二. 安装Redis
1.拉取镜像
docker pull redis
2.启动容器
docker run -itd --name [自定义镜像名称] -p [宿主机端口]:[容器端口] redis
举例:docker run -itd --name redis -p 6379:6379 redis
这种操作,没啥好说的,很朴素。
这里我没变更宿主机redis的默认端口号,是因为我不打算让redis允许远程连接,所以暴露默认端口出来也没问题。
怎么操作呢,
首先去redis官网下载一个redis的配置文件redis.conf
我们把这个文件放在/data/redis/conf.d/目录下面
修改redis.conf:
bind 127.0.0.1 #只允许本地连接,若要远程连接需注释这里
requirepass redispwd123 #设置redis连接密码
然后启动容器的方式改为
docker run -p 6379:6379 --name redis -v /data/redis/conf.d/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --appendonly yes
解释一下:
这里的意思是用宿主机的/data/redis/conf.d/redis.conf文件,代替(映射)容器里面/etc/redis/redis.conf文件,并用这个文件启动redis服务。
三. 安装Mongo
1.拉取镜像
docker pull mongo
2.启动容器
docker run -itd --name [自定义镜像名称] -p [宿主机端口]:[容器内端口] mongo --auth
举例:docker run -itd --name mongo -p 29107:27017 mongo --auth
--auth是指的需要授权连接
3.设置用户
3.1 先进入容器
docker exec -it mongo mongo admin
解释:进入mongo的容器,执行mongo命令(登录mongo),访问admin数据库
或者你朴素一点:
docker exec -it mongo /bin/bash
再
mongo
3.2 设置用户
#创建admin
db.createUser({ user:'[admin账号]',pwd:'[admin密码]',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
#admin登录mongo
db.auth('admin', '123456')
设置好之后,本地就可以通过可视化工具连接到这个容器里的mongo数据库了。
如果连接不上,排查是否没有开启允许远程访问。
进入容器,cd到etc目录
打开mongod.conf.orig文件,注释掉bindIp这里。
四. 安装Nginx
1.拉取镜像
docker pull nginx
2.启动容器
docker run --name [自定义镜像名称] -p 80:80 -d nginx
3.访问nginx
http://服务器IP地址
能成功访问到nginx页面,代表启动成功。
4.配置nginx
有两种配置方式,一种是挂载宿主机磁盘。二是在容器内配置nginx
先说第一种:
启动命令为:
docker run --name nginx -p 80:80 -v [宿主机配置文件路径]:/etc/nginx/conf.d/default.conf -d nginx
这样你直接修改宿主机上的default.conf文件,就可以直接被容器内的nginx读取到。
第二种,还是已朴素的方式启动容器,不挂载任何东西。
这里就需要使用到docker的复制命令将宿主机上的配置文件复制到容器内了。
具体如下
docker cp 宿主机配置文件路径 nginx:/etc/nginx/conf.d/default.conf
最后别忘记重启nginx
docker restart nginx
更多推荐
所有评论(0)