以下文章来源Java架构师技术,回复”Spring“获惊喜礼包 责编:架构君,来源 :程序员追风
链接 : https://blog.csdn.net/2301_76154806
大家好,我是Java架构师
一、前置准备
要开始使用 Docker,请参考以下入门指南:
https://blog.csdn.net/2301_76154806/article/details/128781197
二、Docker 服务端配置 1. 配置 Docker 远程连接端口
首先,新建或修改 /etc/systemd/system/docker.service.d/override.conf 文件,确保其内容如下:
## Add this to the file for the docker daemon to use different ExecStart parameters (more things can be added here) [Service] ExecStart = ExecStart =/usr/bin/dockerd
接着,在 /etc/docker/daemon.json 文件中(如果没有则新建),添加以下内容。请使用您自己的镜像地址,不必强制使用示例中的地址:
{ "registry-mirrors" : [ "https://2v6jvius.mirror.aliyuncs.com" ] , "hosts" : [ "unix:///var/run/docker.sock" , "tcp://0.0.0.0:2375" ] }
然后重启 Docker 服务:
systemctl daemon-reload systemctl restart docker 通过以下命令检查端口是否成功开放:
ss -tuln | grep 2375 如果看到类似以下的输出,说明端口开放成功:
tcp6 0 0 :::2375 :::* LISTEN 8511/dockerd 注意:请务必在腾讯云控制台中开放 2375 端口,同时务必限制访问来源。等到添加了证书后再完全开放。如果不清楚这点,建议暂停后续操作,特别是如果是在阿里云公网机器上,容易受到攻击。
接下来,输入以下命令以确认 Docker 端口暴露成功:
docker -H 121.204.196.203 ps 若能显示 Docker 的基本信息,说明端口暴露成功。关于更安全地开启 Docker 远程访问,请参考 CA 认证的配置。链接:
https://blog.csdn.net/2301_76154806/article/details/141440495
三、Idea 客户端连接 Docker 1. 安装插件并重启 Idea
在 IDEA 中安装 Docker 插件,并重启 IDE:
2. 连接远程 Docker • 连接成功后,会列出远程 Docker 容器和镜像 成功连接后,可以看到远程 Docker 的容器和镜像:
为了确保安全,需要进行认证配置,详情请参考:
https://blog.csdn.net/2301_76154806/article/details/141440495
四、使用 Idea 的 Docker 插件操作镜像和容器,并完成一键发布 1. Docker Image 方式
Docker Image 方式主要用于在 IDEA 中操作远程服务器上的 Docker 镜像和监控容器信息。
新建连接
在 IDEA 的设置中(
File -> Settings -> Docker ),新建连接:
使用服务器上的 Docker 容器操作
在 IDEA 中可以进行容器的各种操作:
镜像操作 拉取镜像:
对已有镜像的操作:
镜像拉取 注意,写 Docker 镜像地址时,需要在镜像名称后面指定版本号。如果不指定,IDEA 会默认使用 latest:
如遇到拉取超时的情况,可以配置国内镜像源,如阿里云的加速器:
容器创建与运行 创建并运行 Docker 容器:
新的 IDEA 版本可能需要额外的参数配置:
创建成功后,可以在服务器上查看新创建的容器:
进行容器的重启、停止和删除等操作:
总的来说,Docker Image 插件将服务器上的命令行操作可视化,简化了操作过程。
2. Dockerfile 方式
有关 Dockerfile 的介绍,请参考这篇文章:
https://ximeneschen.blog.csdn.net/article/details/125646230
准备测试项目 创建一个测试项目:
@Controller public class HelloController {
@GetMapping("hello") @ResponseBody public String hello () { return "hello world" + new SimpleDateFormat ( " [yyyy-mm-dd HH:mm:ss]" ).format( new Date ()); } }
server.port=8085 创建 Dockerfile 在工程的 pom.xml 文件所在目录下创建名为 Dockerfile 的文件,内容如下:
# 基础镜像,使用 Alpine 操作系统,OpenJDK 8u201 FROM java:openjdk- 8 -jdk-alpine # 作者 MAINTAINER Ximenes # 系统编码 ENV
LANG=C.UTF- 8 LC_ALL=C.UTF- 8 # 声明一个挂载点,容器内此路径会对应宿主机的某个文件夹 VOLUME /tmp # 应用构建成功后的 jar 文件被复制到镜像内,名字也改成了 app.jar ADD target/*.jar app.jar # 设置 Alpine 系统时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/ ${TZ} /etc/localtime && echo ${TZ } > /etc/timezone
# 暴露端口 EXPOSE 8085 # 启动容器时的进程 ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ] 创建 Dockerfile 配置 如图所示,创建一个 Dockerfile 配置:
根据下图中的说明进行设置,确保每个步骤都被执行:
在" Run Maven Goal "中输入
clean package ,表示每次构建镜像之前都会清理并重新编译构建:
运行结果 成功构建并部署镜像后,可以在 Docker 上运行容器:
在浏览器访问地址 http://192.168.3.250/hello ,可以看到应用在容器中正常运行:
修改源代码并再次发布镜像即可看到修改后的结果。
3. Docker-Compose 方式
关于 Docker-Compose 的介绍,请参考这篇文章:
https://ximeneschen.blog.csdn.net/article/details/125651027
主要功能是:通过 docker-compose.yml 文件编排运行容器。
你还有什么想要补充的吗?
欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️ 在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!
最后,再次推荐下我们的AI星 球
:
为了跟上AI时代我干了一件事儿,我创建了一个知识星球社群: ChartGPT与副业。 想带着大家一起探索 ChatGPT和新的AI时代 。
有很多小伙伴搞不定ChatGPT账号,于是我们决定,凡是这四天之内加入ChatPGT的小伙伴,我们直接送一个正常可用的永久ChatGPT独立账户。
不光是增长速度最快,我们的星球品质也绝对经得起考验,短短一个月时间,我们的课程团队发布了 8个 专栏、 18个 副业项目:
简单说下这个星球能给大家提供什么:
1、不断分享如何使用ChatGPT来完成各种任务,让你更高效地使用ChatGPT,以及副业思考、变现思路、创业案例、落地案例分享。
2、分享ChatGPT的使用方法、最新资讯、商业价值。
3、探讨未来关于ChatGPT的机遇,共同成长。
4、帮助大家解决ChatGPT遇到的问题。
5、 提供一整年的售后服务,一起搞副业
星球福利:
1、加入星球4天后,就送ChatGPT独立账号。
2、邀请你加入ChatGPT会员交流群。
3、赠送一份完整的ChatGPT手册和66个ChatGPT副业赚钱手册。
其它福利还在筹划中... 不过,我给你大家保证,加入星球后,收获的价值会远远大于今天加入的门票费用 !
本星球第一期原价 399 ,目前属于试运营,早鸟价 169 ,每超过50人涨价10元,星球马上要来一波大的涨价,如果你还在犹豫,可能最后就要以更高价格加入了。。
早就是优势。建议大家尽早以便宜的价格加入!
最后,整理了500多套项目,赠送读者。扫码下方二维码,后台回复 【 赚钱 】 即可获取。
--END--
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我 们都会标明作 者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。 谢谢 !