使用Docker安装Mysql和Redis和Nginx

一、安装Mysql

https://hub.docker.com/

30.jpg

1、本次选择镜像为 mysql:5.7.26 

docker pull mysql:5.7.26

2、用以下脚本启动mysql镜像(如果有特殊字符,可使用单引号包裹):

docker run -d -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=always \
mysql:5.7.26

31.jpg

镜像启动成功;

以交互模式进入容器:

root@jiguiquan:/# docker exec -it mysql /bin/bash 
root@ee8489cd9392:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql

我们上面挂载在宿主机上面的文件夹,也会被自动创建好:

root@jiguiquan:/# ll /mydata/mysql/
drwxr-xr-x 2 root root   4096 Jun  5 17:17 conf/
drwxr-xr-x 5  999 docker 4096 Jun  5 17:17 data/
drwxr-xr-x 2 root root   4096 Jun  5 17:17 log/

3、使用Navicat连接:

32.jpg

连接可用;

4、我们在宿主机上面的配置文件中,修改一下mysql的配置:

root@jiguiquan:/mydata/mysql/conf# vi /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
default-time_zone = '+8:00'

skip-name-resolve:代表跳过域名解析,有助于我们快速连接mysql

5、重启docker:

docker restart mysql

二、安装Redis

1、拉取redis镜像

docker pull redis:5

2、启动命令:

docker run -d -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
--restart=always \
redis:5 redis-server /etc/redis/redis.conf

小坑:docker很容易将redis.conf文件挂载当成目录挂载,这样就有问题了;

所以我们可以预先将这个redis.conf文件在外面的文件夹中创建好,这样就不会出现被当做文件夹的问题了!!!

3、在宿主机创建redis.conf文件:

root@jiguiquan:/# mkdir -p /mydata/redis/conf
root@jiguiquan:/# touch /mydata/redis/conf/redis.conf

之后再执行上面的启动命令:

33.jpg

4、以交互方式进入容器内部,并启动 redis-cli:

root@jiguiquan:/mydata/redis/conf# docker exec -it redis redis-cli
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> get a
"1"

Redis已ok可用!!!

5、Redis默认是没有持久化的

必须要修改配置文件,对redis进行持久化配置

root@jiguiquan:/mydata/redis/conf# vi redis.conf
appendonly yes
protected-mode no

  appendonly yes  代表让redis开启AOF的持久化方式

6、重启redis镜像

docker restart redis

三、下载RedisDesktopManager连接Redis

34.jpg


四、安装Nginx

1、随便启动一个nginx实例:只为复制其配置

docker run -p 80:80 --name nginx -d nginx:1.10

2、将容器内的配置文件拷贝到当前目录:

root@jiguiquan:/mydata# mkdir nginx

root@jiguiquan:/mydata/nginx# docker container cp nginx:/etc/nginx .
## 这里的nginx为容器名,将容器内的/etc/nginx目录拷贝到 .(当前目录)

root@jiguiquan:/mydata# cd nginx/nginx
root@jiguiquan:/mydata/nginx/nginx# ls
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf

这样,我们就能在宿主机上看到nginx的配置文件了!

3、停掉并删除刚刚的nginx容器:

root@jiguiquan:/mydata/nginx# docker stop nginx
nginx
root@jiguiquan:/mydata/nginx# docker rm nginx
nginx

4、为了让目录结构更好,我们将刚刚拷贝出来的nginx目录改名为conf,目录结构就变为了:/mydata/nginx/conf/

root@jiguiquan:/mydata/nginx# mv nginx/ conf/
root@jiguiquan:/mydata/nginx# ls
conf

5、执行以下的启动命令:

docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

执行成功后,会为我们在 /mydata/nginx/ 目录下自动创建出 html 和 logs 目录:

28.jpg

6、为了测试我们在 html/ 目录下创建一个简单的html页面:index.html

<h1>jiguiquan</h1>

访问:  http://192.168.174.141/  

29.jpg

Nginx安装成功!!!

jiguiquan@163.com

文章作者信息...

1 Comment

  • 为了让Mysql和Redis每次都能随着docker一起自动启动,可以加上或者update docker容器;

    docker update mysql --restart=always
    docker update redis --restart=always
    

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐