新闻详情

新闻详情

首页 / 资讯中心 / 详情

初学者怎么用docker打包代码

发布时间:2026/9/27 22:55:21来源:尧图网络
初学者怎么用docker打包代码
如果你是处学者连docker是什么都不知道那么我这篇博客将直接上手docker帮助打包第一个项目代码。首先我们先要明白docker它是什么东西主要干什么。初学者理解docker只要知道他是一个可以让你的代码放在别人的电脑上也能顺利运行的东西那么干的就是把你电脑上的代码运行的环境一起打包到别人的电脑上这样听起来有点麻烦环境这么大的一个东西要放到被人电脑上一个还好很多个的话不直接炸了吗哎这就是docker的最便捷的地方他不是给每个程序都复制一整套操作系统而是通过镜像、分层和复用把真正需要的东西组织起来。好了涉及到专业名词了接下来让我镜像是什么他有什么用首先镜像和镜子一点边都不沾你只要知道他是一个做月饼模具可以做出同一个形状的月饼。就像镜像里面提前准备好了程序运行所需要的环境和文件。根据同一个镜像我们可以做出一个、两个甚至很多个环境相同的容器做出来下一步就是吃了哈哈月饼可以说吃但容器就是用了那容器是什么呢简单来说容器就是根据镜像这个模板创建出来的一个实际运行环境你的代码会在这个环境里真正运行起来。所以你可以先记住一句话镜像是模具容器是根据模具做出来并运行起来的东西。那这个和打包有什么关系聪明的你肯定想到了可以将你代码运行所需要的环境、依赖和相关文件打包成一个Docker镜像只要把你的镜像传到别人的电脑里就可以运行你的代码了没错这就是打包的核心概念其余的步骤都在围绕怎么让这个打包出来的东西更小、更高效以及怎么让我们管理和运行这些容器更加方便。好了废话不多说直接上命令假如说这是你的一个项目代码结构分为客户端和服务端两个部分那应该怎么打包呢很明显客户端和服务端虽然属于同一个项目但它们实际上是两个需要独立运行的程序所以我们不能简单地把它们全部塞进一个容器里。一般来说我们会分别为客户端和服务端构建镜像也就是一个项目对应两个镜像。那问题来了镜像到底怎么构建这时候就需要用到Dockerfile。Dockerfile是什么一句话就是告诉docker,这个镜像我要使用什么基础环境、把哪些代码复制进去、安装哪些依赖、怎么编译程序以及容器启动之后应该执行什么命令。例如# 1. 准备 Go 编译环境 FROM golang:alpine # 2. 设置容器里的工作目录 WORKDIR /app # 3. 把 go.mod 复制进去 COPY go.mod ./ # 4. 下载项目依赖 RUN go mod download # 5. 把项目代码复制进去 COPY . . # 6. 编译服务端程序 RUN go build -o server ./cmd/server # 7. 声明服务端使用 8080 端口 EXPOSE 8080 # 8. 容器启动时运行 server CMD [./server]这样虽然看起来很麻烦但是你只需要知道一个dockerfile文件有什么就行至于怎么写你当然可以直接发给ai按照格式书写。接下来就是客户端了和此格式可能会有些出入主要还是以ai为主。其实这样写就可以把这个文件上传到虚拟机可以自行搜索怎么把windows上的文件上传倒虚拟机里然后通过命令来构建环境docker build -f Dockerfile.server -t chat-room-server .如果是客户端docker build -f Dockerfile.client -t chat-room-client .可以把这个过程理解成Dockerfile 项目代码 ↓ docker build ↓ Docker 镜像其中docker build 开始构建镜像 -f Dockerfile.client 指定使用 Dockerfile.client -t chat-room-client 给构建出来的镜像命名 . 使用当前目录作为构建上下文镜像构建完成之后可以通过docker images 来查看镜像是否构建完成镜像构建完成之后就可以开始做“月饼”了就是构建并启动容器docker run -d --name chat-room-server -p 8080:8080 chat-room-server这里要涉及到一个特别的点-p 8080:8080这两个8080 不是同一个东西分别代表-p 宿主机端口 : 容器端口 ↑ ↑ 8080 8080也就是把虚拟机宿主机的 8080 端口映射到容器里的 8080 端口。这个要根据你的实际情况来写到这里镜像和容器都准备好了那是不是就可以直接运行了呢哈哈还差最后一个小问题。我们在 Windows 上运行客户端和服务端时它们本质上是在同一台电脑上通过localhost:8080就可以找到对方但是现在把它们放进 Docker 之后客户端和服务端变成了两个独立的容器它们需要先处在同一个 Docker 网络里客户端才能找到服务端。所以接下来我们要做的事情就是创建一个 Docker 网络把客户端和服务端放进去让它们能够互相通信。听起来是不是很麻烦但实际上就一个命令docker network create chat-room-net然后把服务端容器加入这个网络docker network connect chat-room-net chat-room-server因为客户端是每加入一个都需要运行一个容器的所以直接启动客户端容器时指定这个网络docker run --rm -it \ --network chat-room-net \ -e SERVER_ADDRchat-room-server:8080 \ chat-room-client这样一顿操作之后你的代码就可以在任意电脑上的虚拟机里成功运行了不过你是不是觉得非常麻烦有什么方法可以直接一键启动吗有的兄弟有的。他就是Compose。不过这个就是纯文件内容了下期再讲吧希望对你有帮助
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SpringBoot+Vue图书馆管理系统源码拆包:从环境搭建到前后端联调全流程 2026/9/27 23:47:29

SpringBoot+Vue图书馆管理系统源码拆包:从环境搭建到前后端联调全流程

简介:这是一套基于Vue.js与SpringBoot的图书馆管理系统完整源码,面向Java Web初学者、课程设计或毕业设计开发者,帮助快速搭建前后端分离的图书管理项目。压缩包共152个文件,约11.79MB,包含19个Java后端类、14个Vue组件…

阅读更多 →
Wand-Enhancer 三步免费解锁专业版:新手补丁教程 2026/9/27 23:47:29

Wand-Enhancer 三步免费解锁专业版:新手补丁教程

Wand-Enhancer 三步免费解锁专业版:新手补丁教程 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand-Enhancer 是开源本地补丁工具&am…

阅读更多 →
耒阳市古雍网站建设店新手入门:网站被黑挂马3招急救 2026/9/27 23:47:22

耒阳市古雍网站建设店新手入门:网站被黑挂马3招急救

耒阳市古雍网站建设店新手入门:网站被黑挂马3招急救 昨晚11点,手机突然弹出一条短信,说你的网站出现了非法内容。你慌了,打开浏览器一看,首页赫然挂着博彩广告,后台登录密码也被重置了。这时候,新手最容易犯的错误就是立刻删库重装,结果数据全丢,…

阅读更多 →
treg:轻量级终端正则调试工具,纯Go编写,离线可用 2026/9/27 23:47:16

treg:轻量级终端正则调试工具,纯Go编写,离线可用

1. 项目概述:Treg 不是缩写,而是真实存在的开源 CLI 工具最近在多个开发者社区和终端工具讨论区里,“treg”这个词频繁出现,但很多人第一反应是——这会不会是 T-Regulatory cell(调节性T细胞)的缩写&#…

阅读更多 →
Python程序打包实战:PyInstaller与Kivy打包EXE和APK全指南 2026/9/27 23:47:09

Python程序打包实战:PyInstaller与Kivy打包EXE和APK全指南

1. 从脚本到可执行文件:为什么打包这件事值得认真对待写过Python的人大概都有过这样的经历:本地跑得好好的脚本,发给同事或者朋友,对方一句“我电脑上没装Python”就把你堵回来了。尤其是做一些小工具、自动化脚本、爬虫可视化界面…

阅读更多 →
智慧养老微信小程序源码实战:从环境搭建到核心模块二次开发 2026/9/27 23:47:03

智慧养老微信小程序源码实战:从环境搭建到核心模块二次开发

简介:这是一套面向高校计算机及相关专业学生的智慧养老微信小程序毕业设计源码,采用JavaScript开发,已通过指导教师审核并获优秀评价,适合用作毕业设计课题、课程实践或学期综合作业。项目聚焦养老服务数字化场景,涵盖…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉