加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、容器安全、数据加密、云日志、云数据迁移!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Docker 实战教程之从入门到提高 (六)

发布时间:2023-03-01 14:00:49 所属栏目:MsSql教程 来源:网络
导读: Docker 实战教程之从入门到提高 (六)
本教程的前五篇文章:

Docker 实战教程之从入门到提高 (一)Docker 实战教程之从入门到提高 (二)Docker 实战教程之从入门到提高 (三)Docker 实战教程之

Docker 实战教程之从入门到提高 (六)

本教程的前五篇文章:

Docker 实战教程之从入门到提高 (六)

Docker 实战教程之从入门到提高 (一)Docker 实战教程之从入门到提高 (二)Docker 实战教程之从入门到提高 (三)Docker 实战教程之从入门到提高 (四)Docker 实战教程之从入门到提高 (五)

以及通过这篇文章的介绍,我们深入学习了 Docker 技术的三大要点。

本文继续通过实战来深入了解 Docker 技术。

练习1:运行在 Docker 里的 SpringBoot 应用,如何查看记录在文件系统的日志

通过本教程前面的练习,我们已经学习了将一个 SpringBoot 应用打包成 Docker 镜像的步骤。那么这个 SpringBoot 应用运行在 Docker 容器镜像实例时mssql 入门教程,如何查看其生成的日志文件?

DockerFile如下:

FROM openjdk:8-jdk-alpineVOLUME /tmpVOLUME /logADD target/prolikeService.jar app.jarENV JAVA_OPTS=""ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar

定义了一个 log 的持久化存储,这样 SpringBoot 应用在容器里运行时,我们可以用命令行进入容器内部,查看 log 文件夹下的日志文件。

在 SpringBoot 应用的 ??Application.properties?? 配置文件里,设置日志文件的输出目录为 log:

使用下列的命令行制作镜像:

docker build -t jerry/springbootexample:v1 .

使用下面的命令行在镜像里运行 SpringBoot 应用:

docker run -p 8000:9000 --name jerrydockerdemo -d jerry/springbootexample:v1使用 ??docker ps?? 查看镜像 id:

使用下面的命令行进入镜像:

sudo docker exec -it 8302db78f838 /bin/sh这样就在 Docker 镜像里查看 SpringBoot 应用运行时生成的日志文件:

练习2:Dockerfile 里的 VOLUMES 关键字

我有一个如下的 Dockerfile:

定义了一个名为 log 的 VOLUME, 这样该 SpringBoot 应用运行在 Docker 容器时,我可以用如下命令,进入 Docker 容器内部,到 log 文件夹下查看该 SpringBoot 应用运行时产生的日志:

docker exec -it /bin/shSpringBoot 应用的 Application.properties 文件:

Dockerfile 里的 VOLUMES 关键字,会在宿主机的目录 ??/var/lib/docker/volumes?? 下面生成一个文件夹:

该文件夹里的 _data 子文件夹,存放的就是我们用命令 ??docker exec -it?? 进入容器内部后看到的 log 文件夹下的数据。

练习3:另一种办法直接在宿主机上的文件夹内查看 Docker 镜像运行的日志文件

我们可以用 ??docker ps??? 首先找到某个 Docker 容器的 id,再使用关键字 ??docker logs ?? 打印出该容器产生的日志:

同样,在宿主机目录 ??/var/lib/docker/containers??? 下面,能发现一个文件夹,其前 12 位名称正好是我们在命令 ??docker ps?? 里查看到的容器 id:

进入该文件夹,即可查找到以 ??-json.log?? 结尾的日志文件:

练习4:在 Docker 里运行 Microsoft SQL 服务器

这个例子展示了如何创建名为 DemoDB 的 MSSQL 数据库,以及名为 Orders 的数据库表,以及两行测试数据。

app 文件夹下的 setup.sql 负责创建数据库,数据库表和测试数据。

init-db.sh 文件用于配置数据库用户名和密码。

docker 文件夹完整层级结构:

Dockerfile 用于创建 docker 镜像。最后一行命令,执行 app 文件夹下面的 entrypoint.sh 文件。

根据 Dockerfile 构建一个镜像:

进入如下文件夹:C:\Code\referenceCode\SAP Kyma教程例子\database-mssql执行命令行:

docker build -t i042416/mssql -f docker/Dockerfile .

注意,因为基于的镜像名称为 microsoft/mssql-server-linux, 故这个命令应该在 linux 操作系统里完成:

镜像成功制作完毕:

docker 镜像制作完毕后,上传到 docker hub:

docker push i042416/mssql上传成功:

本地运行这个镜像:

sudo docker run -e ACCEPT_EULA=Y -e SA_PASSWORD=Yukon900 -p 1433:1433 --name sql1 -d i042416/mssql进入镜像内部,打开 bash shell:docker exec -it sql1 "bash"

Start the sqlcmd tool, which allows you to run queries against the database, by running this command: /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P Yukon900输入如下 query 命令:

1> USE DemoDB

2> SELECT * FROM ORDERS

3> GO

结果:成功读取到两条订单数据:

在 Docker 内部的 /usr/src/app 文件夹下,确实发现了我制作 docker 镜像时的文件:

Microsoft SQL 服务器,安装在 /opt 目录下:

总结

本文首先介绍了给定一个运行在 Docker 容器中的 SpringBoot 应用,如何用两种不同的交互式方式进入容器实例内部查看其运行时生成的日志文件,回顾了之前学习过的 Dockerfile 里 VOLUMES 关键字的知识点,然后介绍了在 Docker 容器里运行 Microsoft SQL 服务器的详细步骤。

?

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章