0
点赞
收藏
分享

微信扫一扫

k8s部署微服务例子

whiteMu 04-05 07:30 阅读 2

1.初识 Docker

1.1.什么是 Docker

1.1.1.应用部署的环境问题

1.1.2.Docker 解决依赖兼容问题

1.1.3.Docker 解决操作系统环境差异

1.1.4.小结

1.2.Docker 和虚拟机的区别

1.3.Docker 架构

1.3.1.镜像和容器

在这里插入图片描述

1.3.2.DockerHub

1.3.3.Docker 架构

1.3.4.小结

1.4.安装 Docker

1)卸载(可选)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

2)安装 docker

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken
# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast
yum install -y docker-ce

3)启动 docker

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

然后输入命令,可以查看 docker 版本:

docker -v

4)配置镜像加速

2.Docker 的基本操作

2.1.镜像操作

2.1.1.镜像名称

2.1.2.镜像命令

2.1.3.案例1-拉取、查看镜像

2.1.4.案例2-保存、导入镜像

docker save --help
docker save -o [保存的目标文件名称] [镜像名称]
docker save -o nginx.tar nginx:latest
docker rmi nginx:latest
docker load -i nginx.tar

2.2.容器操作

2.2.1.容器相关命令

2.2.2.案例-创建并运行一个容器

docker run --name containerName -p 80:80 -d nginx

2.2.3.案例-进入容器,修改文件

docker exec -it mn bash
cd /usr/share/nginx/html
sed -i -e 's#Welcome to nginx#传智教育欢迎您#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html

2.2.4.小结

2.3.数据卷(容器数据管理)

2.3.1.什么是数据卷

2.3.2.数据集操作命令

docker volume [COMMAND]

2.3.3.创建和查看数据卷

docker volume create html
docker volume ls
docker volume inspect html

2.3.4.挂载数据卷

docker run \
  --name mn \
  -v html:/root/html \
  -p 8080:80
  nginx \

2.3.5.案例-给 nginx 挂载数据卷

docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html

2.3.6.案例-给 MySQL 挂载本地目录

docker  run \
	--name mysql\
	-e MYSOL_ROOT_PASSWORD=123 \
	-p 3306:3306 \
	-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
	-v /tmp/mysql/data:/var/1ib/mysql \
	-d \
	mysql:5.7.25

2.3.7.小结

3.Dockerfile 自定义镜像

3.1.镜像结构

3.2.Dockerfile 语法

3.3.构建Java项目

3.3.1.基于 Ubuntu 构建 Java 项目

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar
docker build -t javaweb:1.0 .

3.3.2.基于 java8 构建 Java 项目

FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
EXPOSE 8090
ENTRYPOINT java -jar /tmp/app.jar

3.4.小结

4.Docker-Compose

4.1.初识DockerCompose

version: "3.8"
 services:
  mysql:
    image: mysql:5.7.25
    environment:
     MYSQL_ROOT_PASSWORD: 123 
    volumes:
     - "/tmp/mysql/data:/var/lib/mysql"
     - "/tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf"
  web:
    build: .
    ports:
     - "8090:8090"

4.2.安装 DockerCompose

4.3.部署微服务集群

4.3.1. compose文件

version: "3.2"

services:
  nacos:
    image: nacos/nacos-server
    environment:
      MODE: standalone
    ports:
      - "8848:8848"
  mysql:
    image: mysql:5.7.25
    environment:
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "$PWD/mysql/data:/var/lib/mysql"
      - "$PWD/mysql/conf:/etc/mysql/conf.d/"
  userservice:
    build: ./user-service
  orderservice:
    build: ./order-service
  gateway:
    build: ./gateway
    ports:
      - "10010:10010"
FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar

4.3.2.修改微服务配置

spring:
  datasource:
    url: jdbc:mysql://mysql:3306/cloud_order?useSSL=false
    username: root
    password: 123
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: orderservice
  cloud:
    nacos:
      server-addr: nacos:8848 # nacos服务地址

4.3.3.打包

<build>
  <!-- 服务打包的最终名称 -->
  <finalName>app</finalName>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

4.3.4.拷贝jar包到部署目录

4.3.5.部署

docker-compose up -d

5.Docker镜像仓库

5.1.搭建私有镜像仓库

5.2.推送、拉取镜像

docker tag nginx:latest 192.168.150.101:8080/nginx:1.0 
docker push 192.168.150.101:8080/nginx:1.0 
docker pull 192.168.150.101:8080/nginx:1.0 
举报

相关推荐

0 条评论