6、容器化改造-容器化改造部署实战

#容器化改造

目标


  • 选择一个您熟悉的语言完成容器化改造的相关实践。
  • 了解 Docker 镜像的不同打包方式。
  • 了解 Docker 内应用的调试方法。
  • 了解 Docker 镜像如何推送到远程镜像仓库。

初始化实验环境


当 CVM 出现 如下 提示 WARNING: IPv4 forwarding is disabled. Networking will not work. 请参考上一章开启。

本节内容在 CVM 实战环境下完成。

知识点:在 Docker 的普通网络模式中,有一个特殊的 ip 172.17.0.1,在容器内部,这个 ip 会指向宿主机,高版本的可以使用域名:host.docker.internal。

1. Java(product 应用)

应用构建

对应用进行打包:

cd /microservices-demo/src/product
mvn clean package -DskipTests

Dockerfile 编写

此文件位于 /microservices-demo/src/product/Dockerfile

FROM openjdk:8-jdk-alpine
RUN mkdir /app
COPY target/product.jar /app
WORKDIR /app
EXPOSE 3000

Docker 打包镜像

cd /microservices-demo/src/product
docker build -t training.tencentcloudcr.com/xyzshop/product:1.0 .

Docker 运行

运行此命令前,请首先启动本地 mysql 容器。

export DB_HOST='172.17.0.1'
export DB_PASSWORD='P@ssword123'
export DB_USERNAME='xyzshop_user'
export DB_DATABASE='xyzshop'

docker run --rm --name=product -d \
  -p 3000:3000 \
  -e DB_HOST=${DB_HOST} \
  -e DB_PASSWORD=${DB_PASSWORD} \
  -e DB_USERNAME=${DB_USERNAME} \
  -e DB_DATABASE=${DB_DATABASE} \
  training.tencentcloudcr.com/xyzshop/product:1.0  \
  sh -c "java -jar product.jar"

Docker 实例调试

上面的命令会运行一个 product 实例,映射了端口 3000 到宿主机。
现在在浏览器中可以访问试一下:http://<ip>:3000/apis/product-mall/banner-product-list/20/。
或者使用容器内部的命令进行验证:

docker exec product wget -qO- http://localhost:3000/apis/product-mall/banner-product-list/20/

还可以进入容器内部验证,使用如下命令:

docker exec -it product sh

进入容器后,您可以在容器内执行任意支持的命令,在容器内部执行如下命令进行验证:

 wget -qO- http://localhost:3000/apis/product-mall/banner-product-list/20/

推送镜像到 TCR #
当本地验证成功后,就可以将镜像推送到镜像服务器。

docker push training.tencentcloudcr.com/xyzshop/product:1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值