目录
1、mysql
2、nginx
2.1. 安装与挂载目录
2.2.nginx测试
3、Redis
1、mysql
docker pull mysql:5.7
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v /mydata/mysql/conf:/etc/mysql:将主机当前目录下的 /mydata/mysql/conf挂载到容器的 /etc/mysql
如果这里出现3306占用,因为你的Linux服务器已经装了mysql并启动了服务,记得关闭
service mysqld stop
docker run -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=root -d mysql:5.7
进入容器
docker exec -it mysql /bin/bash
配置config
vi /mydata/mysql/conf/my.conf
[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
2、nginx
2.1. 安装与挂载目录
docker pull nginx
# 随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置
docker run -p 80:80 --name nginx -d nginx
# 把nginx里的东西复制出来
cd /mydata/nginx
docker container cp nginx:/etc/nginx .
然后在外部 /mydata/nginx/nginx 有了一堆文件
mv /mydata/nginx/nginx /mydata/nginx/conf
# 停掉nginx
docker stop nginx
docker rm nginx
# 创建新的nginx,使用刚才复制出来的配置文件
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
# 注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html
#设置开启自启
docker update nginx --restart=always
docker pull nginx # 随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置 docker run -p 80:80 --name nginx -d nginx # 把nginx里的东西复制出来 cd /mydata/nginx docker container cp nginx:/etc/nginx . 然后在外部 /mydata/nginx/nginx 有了一堆文件 mv /mydata/nginx/nginx /mydata/nginx/conf # 停掉nginx docker stop nginx docker rm nginx # 创建新的nginx,使用刚才复制出来的配置文件 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 # 注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html #设置开启自启 docker update nginx --restart=always
nginx本机目录,用来挂载docker里面的nginx配置
一共是4个,目录层级好好看,类似这个:mkdir /mydata/nginx/conf
conf 挂载容器里面的配置,即nginx.conf
conf.d 挂载容器里面的子配置,即nginx.conf里面include的配置文件
logs 挂载容器里面的代理的日志文件
html 挂载容器里面的界面的访问
2.2.nginx测试
在/mydata/nginx/html下新建vim index.html 输入内容
在浏览器上输入自己的域名
3、Redis
如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。
# 在虚拟机中 mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf docker pull redis docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf # 直接进去redis客户端。 docker exec -it redis redis-cli
修改配置文件,默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli
vim /mydata/redis/conf/redis.conf # 插入下面内容 appendonly yes 保存 docker restart redis
设置redis容器在docker启动的时候启动
docker update redis --restart=always



