腾讯云:150.158.26.150 65534 root zq124578.
1 docker 安装:
https://www.runoob.com/docker/centos-docker-install.html
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
重启解决:
systemctl restart docker.service
2 安装mysql
https://www.runoob.com/docker/docker-install-mysql.html
运行容器:
docker pull mysql:latest
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
#挂载:
docker run -itd --name mysql -p 6033:3306 -e MYSQL_ROOT_PASSWORD=Zq124578. -v /opt/docker/mysql/datadir:/var/lib/mysql -v /opt/docker/mysql/mysql-files:/var/lib/mysql-files -v /opt/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf mysql
参数说明:
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
访问mysql:
docker exec -it mysql-test bash
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zq124578.';
CREATE USER 'zhangqing'@'%' IDENTIFIED WITH mysql_native_password BY 'Zq124578.';
GRANT ALL PRIVILEGES ON *.* TO 'zhangqing'@'%' ;
#授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
#退出:
exit
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456'
flush privileges;
自动重启:
docker container update --restart=always mysql
3 安装 Nginx
安装:
docker pull nginx:latest
运行测试容器:
mkdir -p /opt/docker/nginx/{conf,conf.d,html,logs}
docker run --name nginxtest -d nginx #运行一个测试的nginx
docker cp nginxtest:/etc/nginx/nginx.conf /opt/docker/nginx/ #把容器里的nginx的目录复制
docker cp nginxtest:/etc/nginx/conf.d/default.conf /opt/docker/nginx/conf.d/
docker rm -f nginxtest #删除测试的nginx
开启防火墙并访问:
运行:
#运行mynginx 挂载到/wwwroot是为了保持容器和宿主机目录一致,以免配置时出错
docker run --name nginx -d -p 8081:80 -v /opt/docker/nginx/html:/usr/share/nginx/html -v /opt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /opt/docker/nginx/logs:/var/log/nginx nginx
新建index.html
cd /opt/docker/nginx/html
touch index.html
vim index.html
内容:
hello world!
重启:
docker restart nginx
访问:
设置开机自动启动容器
在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
docker run --restart=always CONTAINER ID
如果已经启动了则可以使用如下命令:
docker update --restart=always CONTAINER ID #设置启动nginx时自动启动
docker update --restart=no CONTAINER ID #设置启动nginx时不启动
[root@localhost www]# docker update --restart=always nginx nginx
4 安装redis
4.1 取最新版的 Redis 镜像:
docker pull redis:latest
4.2 运行容器
http://download.redis.io/redis-stable/redis.conf
上传:
mkdir -p /opt/docker/redis/{conf,data}
docker run --name redis -p 9736:6379 -d --restart=always -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis/data:/data redis:latest redis-server --appendonly yes --requirepass "Zq124578."
4.3 连接测试
docker exec -it redis-test /bin/bash
redis-cli
auth Zq124578.
4.4 自动重启
docker update redis --restart=always redis
处理:
修改redis.conf(docker 安装默认在etc目录下):
修改:
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)
requirepass foobared # foobared 换成你的密码
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""