总体步骤

主要分以下几步:

  1. 搜索镜像
  2. 拉取镜像
  3. 查看镜像
  4. 启动镜像
  5. 停止容器
  6. 移除容器

安装tomcat

  1. docker hub上查找tomcat镜像:docker search tomcatDocker安装Tomcat、mysql、Redis - 图1
  2. 从docker hub上拉取tomcat镜像到本地:docker pull tomcatDocker安装Tomcat、mysql、Redis - 图2
  3. docker images 查看是否拉取到tomcat
  4. 创建容器实例:docker run -it -p 8080:8080 tomcat
  5. 访问ip:8080,出现问题:
    1. Docker安装Tomcat、mysql、Redis - 图3
    2. 解决:把webapp.dist目录换成webapps

有一种免修改版本的images:

docker pull billygoo/tomcat8-jdk8

安装mysql

简单版本:

  1. 从docker hub上查找mysql镜像
  2. pull镜像 5.7
  3. 使用mysql5.7创建镜像:
    1. Docker安装Tomcat、mysql、Redis - 图4
    2. docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    3. docker ps
    4. docker exec -it 容器id /bin/bash
    5. mysql -uroot -p
    6. 输入密码即可。

实战版

简单版出现了两个问题,分别是插入中文无法select数据、删除容器后,里面的mysql数据无法持久化到硬盘。

新建mysql容器实例

  1. docker run -d -p 3306:3306 --privileged=true
  2. -v /zzyyuse/mysql/log:/var/log/mysql
  3. -v /zzyyuse/mysql/data:/var/lib/mysql
  4. -v /zzyyuse/mysql/conf:/etc/mysql/conf.d
  5. -e MYSQL_ROOT_PASSWORD=123456
  6. --name mysql mysql:5.7

新建my.cnf文件

/zzyyuse/mysql/conf目录下新建my.cnf文件:

  1. [client]
  2. default_character_set=utf8
  3. [mysqld]
  4. collation_server = utf8_general_ci
  5. character_set_server = utf8

重新启动mysql

Docker安装Tomcat、mysql、Redis - 图5

新建表,插入中文

Docker安装Tomcat、mysql、Redis - 图6

安装Redis

docker hub上pull镜像

从docker hub上pull镜像到本地,标签为6.0.8

run容器

docker run -d -p 6379:6379 redis:6.0.8

docker exec -it id /bin/bash

redis-cli

set k1 v1

get k1

宿主机下创建目录/app/redis

Docker安装Tomcat、mysql、Redis - 图7

将准备好的redis.conf文件放进/app/redis目录下

修改redis.conf文件

3 /app/redis目录下修改redis.conf文件 3.1 开启redis验证 可选 requirepass 123

Docker安装Tomcat、mysql、Redis - 图8

3.2 允许redis外地连接 必须 注释掉 # bind 127.0.0.1 3.3 daemonize no 将daemonize yes注释起来或者 daemonize no设置,因为该配置和docker run中-d参数冲突,会导致容器一直启动失败

Docker安装Tomcat、mysql、Redis - 图9

3.4 开启redis数据持久化 appendonly yes 可选

使用镜像创建容器

  1. docker run -p 6379:6379 --name myr3 --privileged=true
  2. -v /app/redis/redis.conf:/etc/redis/redis.conf
  3. -v /app/redis/data:/data
  4. -d redis:6.0.8 redis-server /etc/redis/redis.conf