step04day13docker技术实践(下)

本文详细介绍了使用Docker创建和管理镜像的过程,包括基于CentOS制作Oracle JDK 8镜像,运行并验证JDK环境,以及启动Sentinel服务。接着,演示了MySQL和Redis的安装与配置,展示了如何启动和访问这两个服务。最后,讲解了Docker网络互联的基本操作,包括创建网络、连接容器并进行联通测试,以及Nacos的安装与运行,确保服务间的网络通信。
摘要由CSDN通过智能技术生成

1.Dockerfile镜像制作

1.1准备工作

  1. centos:7镜像 (所有的镜像文件创建时都需要有一个空的centos镜像,就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的)
  2. jdk压缩包 jdk-8u51-linux-x64.tar.gz(可以从官网去下载:oracle.org),基于此压缩包,制作jdk镜像。

1.2  创建编辑Dockerfile文件

在创建新的镜像时都需要有一个Dockerfile文件(文件名一定要注意大小写),这个文件要与你的资源放在一起(例如你下载的jdk),我们可以通过linux系统中的touch指令创建此文件(touch Dockerfile)

现在,以centos7为基础,构建oracle jdk8的镜像,首先通过vim打开Dockerfile,这个文件不存在会自动创建。然后进入编辑模式(按i字母),在编辑模式下可以拷贝如下语句,书写挂载目录,配置环境

FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD ['bash']

退出保存(Esc后,:wq保存)执行编译。

docker build -t jdk:8 .  #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.

编译成功后效果如图:

1.3 运行镜像文件

1.启动jdk,进入容器

docker run -it jdk:8 bash

运行后,可以通过echo $PATH查看环境变量

并可以通过java –version查看JDK版本信息

java -version

2.启动镜像容器,运行web服务

说明:基于jdk:8镜像启动运行sentinel服务(服务启动后可在宿主机通过localhost:8180进行访问)

docker run -d --name sentinel -v /root/servers:/usr/sca \
> -p 8180:8080 jdk:8 \
> java -jar /usr/sca/sentinel-dashboard-1.8.0.jar

说明:主机端口为8180,容器端口为8080

3.访问测试,输入宿主机ip和端口

成功出现下图:

2.docker镜像安装实例

2.1mysql数据库

2.1.1远程安装步骤

1.远程拉取镜像:docker pull mysql:8.0.23

2.检查mysql镜像:docker images

3.启动运行mysql镜像 (docker run 用于启动一个容器)

sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:8.0.23

注意:如果安装失败,则删除以前的容器和镜像,重新安装

2.1.2 登陆mysql服务

1.进入容器:sudo docker exec -it mysql bash

2.登陆(默认密码root):mysql -uroot -proot

运行成功后如图:

3.mysq 服务其他操作

  • 停止mysql服务:docker stop mysql
  • 启动mysql服务:docker start mysql
  • 查看日志:docker container logs mysql
  • 设置mysql开机自启动:docker update mysql --restart=always

2.2安装redis

2.2.1安装步骤

1.下载镜像:docker pull reids

2.准备配置文件.

创建配置文件目录:mkdir -p /usr/local/docker/redis01/conf

创建redis.conf配置文件:touch /usr/local/docker/redis01/conf/redis.conf

3.创建redis实例并启动:

docker run -p 6379:6379 --name redis01 \
> -v /usr/local/docker/redis01/data:/data \
> -v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
> -d redis redis-server /etc/redis/redis.conf

4.查看正在运行的进程:docker ps

2.2.2 访问redis服务器

1.控制台直接连接redis测试:docker exec -it  redis01 bash

2.检查redis版本:redis-server  -v  或 redis-cli  -v 

3.登录redis(默认不需要密码): redis-cli 

注;二三步骤可以合并:docker exec -it redis01 redis-cli


具体操作如图:

 2.3 安装Ngnix代理

2.3.1安装步骤

1.拉取ngnix镜像 :docker pull nginx

2.查看镜像:docker images

3.创建数据卷(这个对象会在宿主机直接创建一个目录)

创建数据卷:docker volume create ngix-vol

查看数据卷对应的宿主机目录:docker inspect nginx-vol

3.安装运行nacos

3.1 安装运行nacos

1.拉取nacos:docker pull nacos/nacos-server:1.4.1


2. mysql中执行nacos的sql脚本文件 

a) 找到目录/usr/local/docker/mysql/conf/

b) 导入文件nacos-mysql.sql

c)启动mysql:docker exec -it mysql bash

d) 登录mysql:mysql -uroot -p  root

f)运行导入容器目录下的sql文件: source  /etc/mysql/nacos-mysql.sql

3.创建并启动nacos容器

docker run  \
-e TZ="Asia/Shanghai" \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_SERVICE_HOST=192.168.227.131 \ ##与linux虚拟机的地址一致
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \##数据库用户名
-e MYSQL_SERVICE_PASSWORD=root \数据库密码
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-p 8848:8848 \
--name nacos \
--restart=always \
-d nacos/nacos-server:1.4.1

4.成功后运行检测

在浏览器输入192.168.129.130:8848/nacos 进行检测

4 .网络互联运用

4.1 准备工作

1.创建名字为t-net:docker network create -d bridge t-net  #t-net为自己起的网络名称

2.查看网络信息

列出所属有网络:docker network ls

查看网络信息:docker inspect 67d #67d 为创建的网络id

3.实现容器互联

创建容器1:docker run -it --name app1 --network t-net centos:7

创建容器2:docker run -it --name app2 --network t-net centos:7

4.2 联通测试

在两个终端中分别执行:

ping app1  ,ping app2

显示如下:

4.3 原理解析及综合运用

网络互联实际上就是两台计虚拟机的互相联通来模拟用户与后台服务数据交互的一个过程,其也是开发人员用于检测模拟docker远程部署的重要工具,其实质就是容器中服务的联通。

而在开发中,我们常用的一些方式如下:

1.一台模拟服务端,进行负载均衡 ,另一台模拟客户端,请求相应的一些服务

2.启动同一台虚拟机,模拟redis的同步运用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值