目录
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
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