#容器化改造
目标
- 选择一个您熟悉的语言完成容器化改造的相关实践。
- 了解 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

最低0.47元/天 解锁文章
1358

被折叠的 条评论
为什么被折叠?



