1. Mysql 安装

1.1 安装并启动

  1. #拉取mysql
  2. docker pull mysql:5.7
  3. #启动mysql
  4. docker run -p 3306:3306 --name mysql \
  5. --restart=always \
  6. -v /mydata/mysql/log:/var/log/mysql \
  7. -v /mydata/mysql/data:/var/lib/mysql \
  8. -v /mydata/mysql/conf:/etc/mysql \
  9. -e MYSQL_ROOT_PASSWORD=root \
  10. -d mysql:5.7

1.2 配置mysql编码

  1. [client]
  2. default-character-set=utf8
  3. [mysql]
  4. default-character-set=utf8
  5. [mysqld]
  6. init_connect='SET collation_connection = utf8_unicode_ci'
  7. init_connect='SET NAMES utf8'
  8. character-set-server=utf8
  9. collation-server=utf8_unicode_ci
  10. skip-character-set-client-handshake
  11. skip-name-resolve

1.3 重启mysql 容器

  1. docker restart mysql

1.4 容器随机启动

  1. #docker update --restart=always [容器名字]
  2. docker update --restart=always mysql


2.1 安装Redis

  1. # 拉取redis镜像
  2. docker pull redis
  3. # 启动redis
  4. docker run -p 6379:6379 --name redis \
  5. -v /mydata/redis/data:/data \
  6. -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
  7. -d redis redis-server /etc/redis/redis.conf \
  8. --appendonly yes

参数说明:

  • -p 6379:6379: 将容器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 后台运行,指定配置文件
  • —appendonly yes 开启redis持久化

    2.2 Redis持久化

    1. vi /mydata/redis/conf/redis.conf
    2. # appendonly yes
    3. docker restart redis

    3 Portainer

    3.1 安装

    1. docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v /cppcc/docker/portainer/data:/data docker.io/portainer/portainer

    3.2 访问

    http://ip:9000

    4 Nginx

    4.1 安装Nginx

  1. 拉取nginx镜像

    1. docker pull nginx:1.10
  2. 运行容器

  • 从容器中拷贝nginx配置

如果我们要把宿主机和容器中的nginx.conf配置文件做映射,在没有nginx.conf配置文件的前提下我们可以先运行容器,把配置文件拷贝到宿主机再从新运行一个新的容器。
因为nginx启动时需要nginx.conf配置文件,但是第一次运行容器时我们没有是无法运行nginx的。所以可以先运行nginx,从nginx容器中把nginx.conf配置文件拷贝到我们的宿主机。

  1. docker run -p 80:80 --name nginx \
  2. -v /mydata/nginx/html:/usr/share/nginx/html \
  3. -v /mydata/nginx/logs:/var/log/nginx \
  4. -d nginx:1.10
  • 将容器内的配置文件拷贝到宿主机指定目录

    1. docker container cp nginx:/etc/nginx /mydata/docker/nginx
  • 修改同步到宿主机的文件夹名称

    1. mv nginx conf
  • 删除容器

    1. docker rm -f nginx
  1. 重新运行容器(此时已经有配置文件映射)
    1. docker run -p 80:80 --name nginx \
    2. --restart=always \
    3. -v /mydata/nginx/html:/usr/share/nginx/html \
    4. -v /mydata/nginx/logs:/var/log/nginx \
    5. -v /mydata/nginx/conf:/etc/nginx \
    6. -d nginx:1.10

    4.2 访问

    http://ip:port