尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

初学者怎么用docker打包代码

发布时间:2026/9/27 22:55:17

资讯中心
01
ARTICLE

初学者怎么用docker打包代码

初学者怎么用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。不过这个就是纯文件内容了下期再讲吧希望对你有帮助
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。