1. 腾讯云:150.158.26.150 65534 root zq124578.

1 docker 安装:

https://www.runoob.com/docker/centos-docker-install.html

  1. curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

image.png
重启解决:

  1. systemctl restart docker.service

2 安装mysql

https://www.runoob.com/docker/docker-install-mysql.html

运行容器:

  1. docker pull mysql:latest
  2. docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  3. #挂载:
  4. 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
  1. 参数说明:
  2. -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  3. MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

访问mysql:

  1. docker exec -it mysql-test bash
  2. mysql -u root -p
  3. ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zq124578.';
  4. CREATE USER 'zhangqing'@'%' IDENTIFIED WITH mysql_native_password BY 'Zq124578.';
  5. GRANT ALL PRIVILEGES ON *.* TO 'zhangqing'@'%' ;
  6. #授权
  7. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
  8. #退出:
  9. exit
  10. ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456'
  11. flush privileges;

开启防火墙即可远程连接:
image.png
image.png

自动重启:

  1. docker container update --restart=always mysql

3 安装 Nginx

安装:

  1. docker pull nginx:latest

运行测试容器:

  1. mkdir -p /opt/docker/nginx/{conf,conf.d,html,logs}
  2. docker run --name nginxtest -d nginx #运行一个测试的nginx
  3. docker cp nginxtest:/etc/nginx/nginx.conf /opt/docker/nginx/ #把容器里的nginx的目录复制
  4. docker cp nginxtest:/etc/nginx/conf.d/default.conf /opt/docker/nginx/conf.d/
  5. docker rm -f nginxtest #删除测试的nginx

开启防火墙并访问:

image.png
http://150.158.26.150:8081/
image.png

运行:

  1. #运行mynginx 挂载到/wwwroot是为了保持容器和宿主机目录一致,以免配置时出错
  2. 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

  1. cd /opt/docker/nginx/html
  2. touch index.html
  3. vim index.html
  4. 内容:
  5. hello world!

重启:

  1. docker restart nginx

访问:

image.png

设置开机自动启动容器

在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:

  1. docker run --restart=always CONTAINER ID

如果已经启动了则可以使用如下命令:

  1. docker update --restart=always CONTAINER ID #设置启动nginx时自动启动
  2. docker update --restart=no CONTAINER ID #设置启动nginx时不启动
  3. [root@localhost www]# docker update --restart=always nginx nginx

4 安装redis

4.1 取最新版的 Redis 镜像:

  1. docker pull redis:latest

4.2 运行容器
http://download.redis.io/redis-stable/redis.conf
上传:

  1. mkdir -p /opt/docker/redis/{conf,data}
  2. 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 连接测试

  1. docker exec -it redis-test /bin/bash
  2. redis-cli
  3. auth Zq124578.

4.4 自动重启

  1. docker update redis --restart=always redis

image.png
处理:
修改redis.conf(docker 安装默认在etc目录下):
修改:

  1. bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
  2. protected-mode no #默认yes,开启保护模式,限制为本地访问
  3. daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
  4. databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
  5. dir ./ #输入本地redis数据库存放文件夹(可选)
  6. appendonly yes #redis持久化(可选)
  7. requirepass foobared # foobared 换成你的密码
  8. rename-command FLUSHALL ""
  9. rename-command CONFIG ""
  10. rename-command EVAL ""