画像项目拆分之mysql
第1步: 制作 dockerfile
项目目录
[root@worker233 /baimei/huaxiang/mysql]#cat Dockerfile
# 指定基础镜像
FROM mysql:5.7
ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d
ENV INSTALL_DB_SQL softwares/tags.sql
COPY ./$INSTALL_DB_SQL $AUTO_RUN_DIR/
RUN chmod 777 $AUTO_RUN_DIR/tags.sql
# LABEL可以基于key=value方式指定信息
LABEL author=baimei
这一步不明白的可以参考:docker部署mysql并且初始化数据库
第2步: 编译 阶段 build
编译:
docker build -t init_mysql57:v0.2 .
第3阶段: 运行测试
docker run -e MYSQL_ROOT_PASSWORD=123456 -d --name=db03 init_mysql57:v0.1
docker exec -it db03 bash
测试数据没问题:可以进入下一步
第4步打标签:
docker tag init_mysql57:v0.1 harbor.baimei.com/huaxiang-mysql/init_mysql57:v0.1
第5步:推送到 harbo:
docker push harbor.baimei.com/huaxiang-mysql/init_mysql57:v0.1
docker commit -a "baimeimysql" -m "inti data" 029ddb00167b mysqlbaimei5.7:v0.3
接下来,我们 用 k8s 做管理 这个镜像:
k8s 编排:
在 k8s 主节点 master231上执行
变现 yaml文件
[root@master231 /manifests/huaxiangpod]#cat mysqlhuaxiang.yaml
# 指定apiserver版本号
apiVersion: v1
# 指定资源的类型
kind: Pod
# 定义源数据信息
metadata:
# Pod的名称
name: huaxiangpod
# 用户定义资源期望运行的状态
spec:
hostNetwork: true
# 指定在worker232的工作节点运行
nodeName: worker232
# 在Pod内运行的容器定义
containers:
# 容器的名称
- name: mysqlhuaxiang
# 镜像名称
image: harbor.baimei.com/huaxiang-mysql/mysqlbaimei5.7:v0.2
ports:
- containerPort: 3306
hostIP: 10.0.0.232
hostPort: 3306
name: db
# 向容器传递环境变量
env:
# 变量的名称
- name: MYSQL_ALLOW_EMPTY_PASSWORD
# 指定变量的值
value: "yes"
- name: MYSQL_DATABASE
value: "tags"
- name: MYSQL_USER
value: "baimei"
- name: MYSQL_PASSWORD
value: "123456"
运行 :
kubectl apply -f mysqlhuaxiang.yam
查看状态:
kubectl get pods -o wide
running 说明启动了
接下来就要进入Pod 查看 数据了
kubectl exec -it huaxiangpod -- mysql
或者 进入 容器:
kubectl exec -it huaxiangpod sh
都可以验证;
到此我们的 mysql -画像 已经拆解完成。
可以在其他节点 远程测试一下:
mysql -h 10.0.0.232 -ubaimei -p123456 -e "show databases;"
接下来我们拆分,tomcat 相关的spring boot 项目。