新手小白学习docker第六弹------Docker常规安装(安装tomcat、mysql、redis)

目录

  • [1 总体步骤](#1 总体步骤)
  • [2 安装tomcat](#2 安装tomcat)
    • [2.1 搜索镜像](#2.1 搜索镜像)
    • [2.2 拉取镜像](#2.2 拉取镜像)
    • [2.3 查看镜像](#2.3 查看镜像)
    • [2.4 启动镜像](#2.4 启动镜像)
    • [2.5 访问猫首页](#2.5 访问猫首页)
  • [3 安装mysql](#3 安装mysql)
    • [3.1 搜索镜像](#3.1 搜索镜像)
    • [3.2 拉取镜像](#3.2 拉取镜像)
    • [3.3 启动镜像](#3.3 启动镜像)
  • [4 安装redis](#4 安装redis)
    • [4.1 拉取镜像](#4.1 拉取镜像)
    • [4.2 启动镜像(法1基础版)](#4.2 启动镜像(法1基础版))
    • [4.3 配置文件](#4.3 配置文件)
      • [4.3.1 在宿主机下新建目录 /app/redis](#4.3.1 在宿主机下新建目录 /app/redis)
      • [4.3.2 将一个redis.conf文件模板拷贝进 /app/redis 目录下](#4.3.2 将一个redis.conf文件模板拷贝进 /app/redis 目录下)
      • [4.3.3 /app/redis 目录下修改redis.conf文件](#4.3.3 /app/redis 目录下修改redis.conf文件)
    • [4.4 启动镜像(法2高阶版)](#4.4 启动镜像(法2高阶版))
    • [4.5 检验](#4.5 检验)
  • [5 后记](#5 后记)

1 总体步骤

1 搜索镜像

2 拉取镜像

3 查看镜像

4 启动镜像(注意服务端口映射)

5 停止容器

6 移除容器

2 安装tomcat

2.1 搜索镜像

docker hub上面查找 billygoo/tomcat8-jdk8 镜像

bash 复制代码
docker search billygoo/tomcat8-jdk8

2.2 拉取镜像

从docker hub上拉取 billygoo/tomcat8-jdk8 镜像到本地

bash 复制代码
docker pull billygoo/tomcat8-jdk8

2.3 查看镜像

docker images 查看是否有拉取到的镜像

bash 复制代码
docker images billygoo/tomcat8-jdk8

2.4 启动镜像

使用 billygoo/tomcat8-jdk8 镜像创建容器实例(也可以说是运行镜像)

bash 复制代码
docker run -it -p 8080:8080 billygoo/tomcat8-jdk8

-p 小写,主机端口:docker容器端口

-P大写,随机分配端口

i: 交互

t: 终端

d: 后台

2.5 访问猫首页

在虚拟机自带的浏览器访问自己主机IP地址:8080就可以访问到猫啦

为什么不直接拉取 tomcat 呢?

其实你可以先试试,我已经试过了,直接访问不到猫的首页,需要进行配置(将webapps.dist目录换成webapps)所以我这里就直接拉取 billygoo/tomcat8-jdk8 镜像了,对,学习就是为了减少麻烦,所以这样我就减少了麻烦。

3 安装mysql

3.1 搜索镜像

在docker hub上面查找mysql镜像

bash 复制代码
docker search mysql

3.2 拉取镜像

从docker hub上拉取mysql镜像到本地标签为5.7

bash 复制代码
docker pull mysql:5.7

查看该镜像

bash 复制代码
docker images mysql:5.7

3.3 启动镜像

使用mysql:5.7镜像创建容器

bash 复制代码
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
bash 复制代码
docker ps
bash 复制代码
docker exec -it 容器ID /bin/bash

进入数据库进行操作

bash 复制代码
mysql -uroot -p
bash 复制代码
create database db01;
use db01;
create table aa(id int, name varchar(20));
insert into aa values(1,'z3');
select * from aa;

4 安装redis

4.1 拉取镜像

从docker hub上(阿里云加速器)拉取redis镜像到本地标签为6.0.8

bash 复制代码
docker pull redis:6.0.8

这里是基本的命令,后文有一个高级一点的,即使用了容器卷,保证数据更安全。

4.2 启动镜像(法1基础版)

bash 复制代码
docker run -d -p 6379:6379 redis:6.0.8
bash 复制代码
docker exec -it 容器ID /bin/bash
bash 复制代码
redis-cli
set k1 v1
get k1
ping

4.3 配置文件

4.3.1 在宿主机下新建目录 /app/redis

bash 复制代码
mkdir -p /app/redis/

4.3.2 将一个redis.conf文件模板拷贝进 /app/redis 目录下

没有模板就到网上找一个,然后跟着下面的步骤修改就可以的

bash 复制代码
cd /app/redis/
vim redis.conf

4.3.3 /app/redis 目录下修改redis.conf文件

1 开启redis验证(可选)
requirepass 123

2 允许redis外地连接 必须

注释掉 # bind 127.0.0.1

3 daemonize no 必须

将daemonize yes注释起来或者 daemonize no设置,因为该配置和 docker run中-d参数冲突,会导致容器一直启动失败

4 开启redis数据持久化 appendonly yes(可选)

这里第一点,注意要把其他的requirepass注释掉,只留下requirepass 123,或者都注释掉,鄙人的血泪教训,解决了半天,真是服了。




4.4 启动镜像(法2高阶版)

使用redis:6.0.8镜像创建容器

这里是用了数据卷的

bash 复制代码
docker run  -p 6379:6379 --name myr3 --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf



bash 复制代码
docker exec -it myr3 /bin/bash
redis-cli
auth 123
set k1 v1
get k1

4.5 检验

证明 docker启动使用了我们自己指定的配置文件

修改配置文件之前

bash 复制代码
select 15

我们用的配置文件,数据库默认16个

在/app/redis修改配置文件

bash 复制代码
databases 10

宿主机的修改会同步给docker容器里面的配置

记得重启服务

测试redis-cli连接上来第二次

bash 复制代码
docker restart myr3
redis-cli
auth 123
select 9
select 10
select 15

5 后记

我今天看到隔壁实验室的一对情侣了,他俩散步,那股害羞劲,隔着很远都传给我了。我跟人家暧昧的时候咋不是这样的呢~

恋爱还是看别人谈才有意思!

好吧,BB ,如果文档对你有帮助的话,给我点个赞赞啊!

谢谢啦,爱情和事业总要丰收一个撒~

相关推荐
枫哥和java2 小时前
python serializer, model drf通过序列化器, 模型获取mysql 一张表某个字段数据库现存的最大值
数据库·python·mysql
"追风者"6 小时前
mysql数据库(六)pymysql、视图、触发器、存储过程、函数、流程控制、数据库连接池
数据库·mysql
HilariousDog6 小时前
Mysql数据库1——基本原理和基础操作
数据库·mysql·oracle
小柒xq7 小时前
使用docker compose安装部署gitlab
docker·容器·gitlab
努力的小陈^O^7 小时前
docker学习笔记跟常用命令总结
java·笔记·docker·云原生
童先生7 小时前
如何将java项目打包成docker 镜像并且可运行
java·开发语言·docker
小诸葛的博客7 小时前
mysql中mvcc如何处理纯读事务的?
数据库·mysql
Lil-Long9 小时前
MySQL-存储过程
数据库·mysql·oracle
苹果醋39 小时前
Redis | 第3章 对象《Redis设计与实现》
java·运维·spring boot·mysql·nginx
猿java9 小时前
Docker是什么?Kubernetes又是什么?如何通过代码实战理解它们?
java·docker·kubernetes