ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Docker Labs 项目:Java 容器化实践指南 - 运行容器详解

Docker Labs 项目:Java 容器化实践指南 - 运行容器详解 Docker Labs 项目Java 容器化实践指南 - 运行容器详解容器化入门理解 Docker 运行机制在 Docker 生态系统中容器是轻量级、可执行的软件包包含运行应用程序所需的一切代码、运行时、系统工具、系统库和设置。与虚拟机不同容器共享主机系统内核这使得它们更加高效和快速启动。镜像管理基础查看本地镜像在运行容器之前我们需要了解本地已存在的镜像。使用以下命令查看docker image ls这个命令会列出所有本地存储的 Docker 镜像包括镜像仓库来源REPOSITORY标签TAG唯一的镜像ID创建时间镜像大小深入镜像历史要了解镜像的构建历史可以使用docker image history jboss/wildfly这个命令会显示镜像的每一层构建信息包括每层执行的命令创建时间每层的大小注释信息理解镜像分层结构对于优化Dockerfile和调试镜像问题非常有帮助。容器运行模式详解交互式运行对于需要与容器交互的场景如调试或配置可以使用交互模式docker container run -it jboss/wildfly参数说明-i保持STDIN打开即使没有连接-t分配一个伪终端这种模式下你会直接看到容器的控制台输出适合初次测试和调试。要退出可以使用CtrlC。后台运行模式生产环境通常需要容器在后台运行docker container run -d jboss/wildfly参数说明-d分离模式容器在后台运行命令会返回一个容器ID可以通过以下命令查看运行状态docker container ls要查看所有容器包括停止的docker container ls -a网络端口映射实战自动端口映射Docker 可以自动将容器端口映射到主机端口docker container run -d -P --name wildfly jboss/wildfly参数说明-P自动映射所有暴露的端口到随机主机端口--name为容器指定一个易记的名称使用docker container ls查看实际映射的端口号然后在浏览器访问http://localhost:映射端口。指定端口映射对于需要固定端口的情况docker container run -d -p 8080:8080 --name wildfly jboss/wildfly参数说明-p hostPort:containerPort将主机的8080端口映射到容器的8080端口这样就能通过http://localhost:8080直接访问应用。应用部署实战Java EE 示例自定义镜像部署WAR文件创建DockerfileFROM jboss/wildfly:latest RUN curl -L https://example.com/path/to/sample.war -o /opt/jboss/wildfly/standalone/deployments/sample.war构建镜像docker image build -t javaee-sample .运行容器docker container run -d -p 8080:8080 --name wildfly javaee-sample测试应用curl http://localhost:8080/sample/resources/persons容器生命周期管理停止容器停止单个容器docker container stop 容器ID或名称停止所有运行中的容器docker container stop $(docker container ps -q)删除容器删除单个容器docker container rm 容器ID或名称删除所有已停止的容器docker container rm $(docker container ps -aq)强制删除运行中的容器谨慎使用docker container rm -f 容器ID或名称高级技巧端口映射查询查询容器的端口映射docker container port 容器ID或名称使用inspect命令获取详细信息docker container inspect --format{{(index (index .NetworkSettings.Ports 8080/tcp) 0).HostPort}} 容器ID最佳实践建议始终为生产容器指定名称--name便于管理开发环境可以使用交互模式生产环境应使用分离模式明确指定端口映射关系避免使用随机端口定期清理不再使用的容器和镜像使用Dockerfile构建自定义镜像而不是手动修改运行中的容器通过掌握这些核心概念和命令你已经具备了使用Docker运行和管理Java应用容器的基本能力。下一步可以探索更高级的主题如容器网络、数据卷和多容器编排等。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表