安装nginx,mysql,redis

sudo docker pull mysql:5.7

安装mysql

--name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行

sudo 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

配置mysql

进入已启动的容器

docker exec -it mysql bin/bash

退出进入的容器

exit;

因为有目录映射,所以我们可以直接在镜像外执行
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

安装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

vim /mydata/redis/conf/redis.conf
appendonly yes
保存

docker restart redis

安装nginx
docker pull nginx:1.10

随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置

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

把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:1.10

注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html

docker update nginx --restart=always

上一篇:linux docker 安装mysql,redis


下一篇:docker 安装nacos