一、安装Mysql
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
镜像启动成功;
以交互模式进入容器:
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连接:
连接可用;
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
之后再执行上面的启动命令:
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
四、安装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 目录:
6、为了测试我们在 html/ 目录下创建一个简单的html页面:index.html
<h1>jiguiquan</h1>
访问: http://192.168.174.141/
Nginx安装成功!!!
1 Comment
为了让Mysql和Redis每次都能随着docker一起自动启动,可以加上或者update docker容器;