《Docker 案例》

前提准备

1 - 关闭防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.service
2 - 启动或重启docker
# 启动docker
systemctl start docker
# 重启docker
systemctl restart docker
3 - 查看是否存在别的容器,存在的话删掉
docker ps

Redis

在这里插入图片描述

加载镜像

端口:7000

docker run -d --name redis7000 --restart=always \
-p 7000:6379 redis

端口:7001

docker run -d --name redis7001 --restart=always \
-p 7001:6379 redis

端口:7002

docker run -d --name redis7002 --restart=always \
-p 7002:6379 redis

启动容器

docker exec -it redis7000 redis-cli
docker exec -it redis7001 redis-cli
docker exec -it redis7002 redis-cli

创建项目

  • 创建一个maven项目工程
  • 引入 jedis 依赖
  • 创建测试类
  • 写入redis代码
  • 执行100个 key和value
    在这里插入图片描述
    依赖
<dependency>
		<groupId>redis.clients</groupId>
		<artifactId>jedis</artifactId>
		<version>2.9.0</version>
</dependency>

在这里插入图片描述

public class Test1 {
    public static void main(String[] args) {
        List<JedisShardInfo> list = new ArrayList<>();
        list.add(new JedisShardInfo("192.168.64.150", 7000));
        list.add(new JedisShardInfo("192.168.64.150", 7001));
        list.add(new JedisShardInfo("192.168.64.150", 7002));

        JedisPoolConfig config = new JedisPoolConfig();

        ShardedJedisPool pool = new ShardedJedisPool(config,list);
        ShardedJedis j = pool.getResource();


        for (int i = 0; i < 100; i++) {
            j.set("key"+i, "value"+i);
        }

        pool.close();

    }
}

在redis客户端测试

docker exec -it redis7000 redis-cli
keys *

在这里插入图片描述
测试完了就删除redis

docker rm -f redis7000 redis7001 redis7002

mysql

在这里插入图片描述

虚拟网路

docker network create dockernet --subnet=172.18.0.0/24
docker network ls

数据库

1 - 数据卷
# 创建数据卷
docker volume create mysql-data
# 查看数据卷
docker volume ls
2 - 启动mysql容器
docker run -d --restart=always \
-v mysql-data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-p 3306:3306 \
--net dockernet \
--ip 172.18.0.11 \
--name mysql \
mariadb
  • –restart=always —— 宿机启动的时候 一起启动
  • -v —— 挂载目录
  • -e —— 环境变量
  • -p —— 端口映射
  • –net —— 虚拟网路
  • –ip —— 手动设置固定ip
  • –name —— 名字
3 - 数据库工具来测试

在这里插入图片描述
在这里插入图片描述
新建数据库
在这里插入图片描述

4 - 测试目录挂载

容器
在这里插入图片描述
本地
在这里插入图片描述
成功


WEB+Mysql

本此只有讲容器与容器之间的互联
首先需要测试的项目

在这里插入图片描述

修改项目中的数据库链接池

链接池的地址跟 数据库的容器的ip一致

在这里插入图片描述
在这里插入图片描述

上传项目

在 opt/mall目录中上传
在这里插入图片描述

启动容器
docker run -d --restart=always \
-v /opt/mall:/usr/tomcat/webapps \
-p 80:8080 \
--net dockernet \
--ip 172.18.0.12 \
--name web \
tomcat:7
  • -restart=always —— 宿机启动时一起启动
  • -v —— 挂载目录
  • -p —— 端口映射
  • –net —— 设置虚拟网段
  • – ip —— 设置ip
  • –name —— 容器名字
  • tomcat:7 启动tomcat7镜像以及容器
测试

http://192.168.64.1500

在这里插入图片描述
在这里插入图片描述
数据已显示


Eureka

我们的eureka要两部分

  • jdk的镜像
  • eureka的镜像

JDK的构建

需要JDK1.8的 压缩包

1 - 准备文件夹
mkdir ~/jdk
cd ~/jdk

上传 jdk 压缩文件到 /root/jdk/ 目录
在这里插入图片描述

2 - Dockerfile

创建Dockerfile

vim Dockerfile

复制下面的内容

FROM centos:7
ADD jdk-8u212-linux-x64.tar.gz /opt/
ENV JAVA_HOME=/opt/jdk1.8.0_212 \
    PATH=/opt/jdk1.8.0_212/bin:$PATH
ENTRYPOINT bash
  • FROM —— 导入centos7 的镜像
  • ADD —— 添加以及复制 jdk的 压缩包(自己包含压缩)
  • ENV —— 环境变量配置
  • ENTRYPOINT —— 执行命令 bash
3 - 构建jdk的镜像
docker build -t jdk:8 .

查看

docker images

在这里插入图片描述


Eureka的构建

需要Eureka的Jar 文件

  • 从网上下载
  • 自己打包jar文件
1 - 准备文件夹
mkdir ~/eureka
cd ~/eureka

上传 eureka 的jar文件到 /root/eureka 目录
在这里插入图片描述

2- Dockerfile

创建 Dockerfile

vim Dockerfile

复制下面内容

FROM jdk:8
COPY sp05-eureka-0.0.1-SNAPSHOT.jar /opt/
ENTRYPOINT ["java", "-jar", "/opt/sp05-eureka-0.0.1-SNAPSHOT.jar"]
CMD ["--spring.profiles.active=eureka1", "--server.port=2001"]
  • FROM —— 创建jdk的镜像
  • COPY —— 复制eureka的jar 文件
  • ENTRYPOINT —— 执行命令
  • CMD —— 执行参数
3 - 构建eureka的镜像
docker build -t eureka:v1 .

在这里插入图片描述

docker images

在这里插入图片描述


启动 Eureka 容器

eureka的启动参数
docker run -d --name eureka1 \
-p 2001:2001 \
eureka:v1
访问测试

192.168.64.150:2001
在这里插入图片描述


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值