Golang如何安装并配置Docker开发环境

首先安装Docker和Docker Compose,Linux用户通过APT安装并配置用户组,macOS和Windows用户使用Docker Desktop;接着在Golang项目中创建多阶段Dockerfile,基于golang:1.21-alpine构建并优化镜像体积,使用alpine运行二进制文件;然后编写docker-compose.yml统一管理应用及依赖服务如PostgreSQL;开发时可通过air实现热重载,并挂载本地代码卷提升迭代效率;最后建议规范go.mod和Docker上下文以确保构建一致性。

golang如何安装并配置docker开发环境

在Go语言(Golang)项目中使用Docker,能帮助你构建可移植、一致的开发与部署环境。以下是安装和配置适用于Golang项目的Docker开发环境的完整步骤。

安装Docker和Docker Compose

要开始,你需要在本地机器上安装Docker引擎和Docker Compose。

Linux(以Ubuntu为例):

更新包索引:sudo apt update安装依赖:sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release添加Docker官方GPG密钥:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg添加仓库源:echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null安装Docker:sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io安装Docker Compose:sudo curl -L “https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose将当前用户加入docker组避免使用sudo:sudo usermod -aG docker $USER(需重新登录)

macOS 和 Windows:

立即学习“go语言免费学习笔记(深入)”;

下载并安装 Docker Desktop:访问 https://www.php.cn/link/2997607ae9ee935528ee27423a5b6e30Docker Desktop 已包含 Docker Engine、CLI 和 Compose,安装后即可使用

编写Go项目的Dockerfile

在你的Golang项目根目录下创建名为 Dockerfile 的文件,内容如下示例:

稿定抠图 稿定抠图

AI自动消除图片背景

稿定抠图 76 查看详情 稿定抠图

# 使用官方Golang镜像作为基础镜像FROM golang:1.21-alpine AS builder

# 设置工作目录WORKDIR /app

# 拷贝go.mod和go.sum(如果存在)以利用缓存COPY go.mod ./COPY go.sum ./
RUN go mod download

# 拷贝源代码COPY . .

# 构建二进制文件RUN CGO_ENABLED=0 GOOS=linux go build -o main .

# 最终阶段:使用轻量级镜像运行FROM alpine:latestRUN apk --no-cache add ca-certificatesWORKDIR /root/

# 从构建阶段拷贝二进制文件COPY --from=builder /app/main .

# 暴露端口(根据实际服务调整)EXPOSE 8080

# 启动命令CMD ["./main"]

这个多阶段构建能有效减小最终镜像体积,并提升安全性。

使用docker-compose简化本地开发

如果你的Go服务依赖数据库或其他服务(如PostgreSQL、Redis),可以使用 docker-compose.yml 统一管理。

version: '3.8'services:  app:    build: .    ports:      - "8080:8080"    environment:      - DB_HOST=db      - DB_PORT=5432    depends_on:      - db

db:image: postgres:15environment:POSTGRES_DB: myappPOSTGRES_USER: userPOSTGRES_PASSWORD: passwordports:

  • "5432:5432"volumes:
  • postgres_data:/var/lib/postgresql/data

volumes:postgres_data:

保存后,在项目目录运行:
docker-compose up --build
这会构建Go应用镜像并启动服务和数据库。

开发中的实用技巧

为了在开发时实现热重载或快速迭代,你可以结合 air 或挂载代码卷。

在Dockerfile中添加air用于热重载(仅开发环境):

RUN go install github.com/cosmtrek/air@latest

修改compose文件中app服务的command:

command: air -c .air.toml

将本地代码挂载到容器中,实现修改即时生效:

volumes:  - .:/app  - /app/bin  - /app/vendor

注意:生产环境不要启用热重载或代码挂载

基本上就这些。通过以上步骤,你可以快速搭建一个适合Golang项目的Docker开发环境,便于团队协作和后续部署。不复杂但容易忽略的是权限和模块依赖的处理,建议每次构建前确认go.mod正确且Docker上下文不包含冗余文件。

以上就是Golang如何安装并配置Docker开发环境的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1026995.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
双向卫星通信、龙骨转轴 2.0,小米 MIX Fold 4 折叠屏手机官宣,7 月 19 日发布
上一篇 2025年12月2日 02:06:30
css justify-content与align-items配合使用技巧
下一篇 2025年12月2日 02:06:32

相关推荐

  • win8命令提示符管理员权限运行_win8以管理员权限运行命令提示符的方法

    1、在Windows 8.1中执行系统级操作时若因权限不足导致命令无法执行,需以管理员身份运行命令提示符;可通过开始屏幕搜索、Win+X菜单、运行对话框或任务管理器四种方法启动高权限命令提示符窗口。 如果您尝试在Windows 8系统中执行某些系统级操作,例如修改系统文件或配置网络设置,但发现命令无…

    2026年8月29日
    100
  • 电脑出现cdd.dll丢失错误_图形设备驱动修复

    首先彻底卸载显卡驱动并重新安装,使用ddu工具在安全模式下清理残留,再安装官网下载的最新驱动;2. 运行sfc和dism命令修复系统文件损坏;3. 进行全盘杀毒扫描排除恶意软件;4. 检查硬盘健康状况,使用chkdsk命令修复坏道;5. 必要时使用系统还原或更新windows系统以解决兼容性问题;通…

    2026年8月29日
    100
  • linux系统centos是什么?

    centos(community enterprise operating system,中文意思是社区企业操作系统)是一个基于red hat linux 提供的可自由使用源代码的企业级linux发行版本。 由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat…

    2026年8月29日
    000
  • Apc缓存Opcode

    php执行过程中,由于其解释型语言特性,首先需要读取程序,然后通过zend引擎将其编译成opcode,最后由zend虚拟机顺序执行这些opcode来完成操作。为了提高效率,我们可以将这些opcode缓存起来,避免下次执行时再次编译。apc缓存的作用如下: APC简介 安装配置 APC管理界面 APC…

    2026年8月29日
    100
  • windows10怎么关闭烦人的广告弹窗_windows10广告弹窗屏蔽方法

    关闭Windows 10广告需从通知、锁屏、开始菜单、Microsoft商店、任务计划程序及组策略入手。1、设置中关闭提示与建议;2、锁屏背景改为图片并关闭花絮获取;3、开始菜单禁用推荐内容显示;4、Microsoft商店内关闭促销选项;5、任务计划程序禁用广告相关任务;6、专业版用户通过组策略禁用…

    2026年8月29日
    200
  • win10怎么开启或关闭快速启动_Win10快速启动功能开关设置方法

    答案:可通过电源选项、命令提示符或组策略编辑器开启或关闭Windows 10快速启动功能。具体步骤包括在电源选项中修改设置,使用管理员命令提示符执行powercfg -h off关闭休眠以禁用快速启动,或通过gpedit.msc组策略编辑器控制该功能状态,适用于解决关机开机慢及兼容性问题。 如果您发…

    2026年8月29日
    500
  • 天猫店铺首页装修步骤是什么?天猫店铺首页装修教程

    提升天猫店铺形象需从首页装修入手,首先进入商家后台选择PC端首页装修,接着选用匹配类目的模板快速美化页面,有设计能力者可自定义全屏海报并嵌入热区代码,随后添加轮播图、商品推荐、店招等核心模块优化信息布局,最后切换至手机端调整排版与组件确保移动端体验流畅。 如果您希望提升天猫店铺的专业形象和用户体验,…

    2026年8月29日
    100
  • win8的windows defender怎么关闭_win8关闭Windows Defender的方法

    1、通过组策略编辑器可关闭Windows Defender,适用于专业版和企业版;2、家庭版用户可通过修改注册表禁用;3、临时关闭可取消实时保护选项。 如果您尝试在Windows 8系统中关闭Windows Defender,以避免其与第三方安全软件冲突或进行特定的系统维护,则可以按照以下方法操作。…

    2026年8月29日
    100
  • linux中rpm是什么意思

    rpm是redhat package manager(redhat软件包管理工具)的缩写,这一文件格式名称虽然打上了redhat的标志,但是其原始设计理念是开放式的,现在包括openlinux、s.u.s.e.以及turbo linux等linux的分发版本都有采用,可以算是公认的行业标准了。 RP…

    2026年8月29日
    100
  • 教你如何在虚拟机上安装Linux

    教你如何在虚拟机上安装Linux教你如何在虚拟机上安装Linux教你如何在虚拟机上安装Linux教你如何在虚拟机上安装Linux

    如今,linux逐渐成为程序员的必备技能,无论是后端开发、运维还是移动开发,都会涉及到linux。因此,对于linux系统,你需要掌握一些基本知识,以免在面对linux时感到无措。 在安装Linux系统之前,我们需要先安装虚拟机软件。使用虚拟机的好处在于,无论你如何操作,都不会影响到你的电脑,非常适…

    2026年8月29日 用户投稿
    200
  • win11怎么把C盘的软件移到D盘_win11应用迁移和存储位置更改方法

    可通过迁移应用或更改默认存储位置释放C盘空间。1、使用设置中的“移动”功能将支持的应用从C盘迁移到D盘;2、对不支持迁移的软件,卸载后重新安装并自定义安装路径至D盘;3、对于专业软件,可用命令提示符创建符号链接,将实际文件夹移至D盘并保留C盘访问入口;4、在存储设置中更改新应用的默认保存位置为D盘,…

    2026年8月29日
    200
  • 电脑硬盘检测到坏道故障排查及数据备份操作指南

    电脑硬盘检测到坏道故障排查及数据备份操作指南电脑硬盘检测到坏道故障排查及数据备份操作指南电脑硬盘检测到坏道故障排查及数据备份操作指南电脑硬盘检测到坏道故障排查及数据备份操作指南

    硬盘检测到坏道时,应立即备份数据并排查故障。首先使用chkdsk进行初步扫描,修复逻辑坏道;接着用crystaldiskinfo或hd tune等专业软件获取详细信息;判断坏道类型为逻辑坏道(可修复)或物理坏道(需隔离);优先备份重要数据,必要时使用克隆软件或数据恢复工具;对物理坏道进行分区隔离以延…

    2026年8月29日 用户投稿
    100
  • 学习linux可以从事什么工作

    学习linux可以从事的工作有:1、Linux运维工程师;2、Linux高级架构师;3、运维开发工程师;4、数据库管理员;5、云计算架构师。随着网站规模越来越大、架构越来越复杂,对优秀运维人才的需求量也逐渐增加。 linux相关工作: (推荐教程:linux视频教程) 1. Linux运维工程师 需…

    2026年8月29日
    100
  • win10怎么看电脑配置_win10电脑硬件配置查看方法

    使用msinfo32可查看系统硬件详细信息;2. 通过设置→关于可获取基础配置;3. 运行dxdiag可检测显卡与多媒体硬件;4. 设备管理器可查看所有硬件设备及驱动状态;5. 任务管理器性能选项卡可实时监控CPU核心数、内存与GPU使用情况。 如果您想要了解您的Windows 10电脑的硬件配置情…

    2026年8月29日
    100
  • 电脑切换窗口快捷键alt加什么

    alt + tab 是电脑上切换窗口的快捷键,具体操作是按住 alt 键不放,再反复按 tab 键可在打开的应用间快速切换,松开 alt 键确认选择;若需反向切换,可按住 alt + shift 再按 tab;该快捷键高效的原因在于无需移开双手即可全局预览并切换窗口,保持操作连贯性;其他切换方式包括…

    2026年8月29日
    500
  • linux运维工程师需要掌握哪些知识

    linux运维工程师需要掌握的知识有:1、linux系统基础知识;2、linux系统管理;3、linux企业常用服务;4、linux企业级安全原理和防范技巧;5、shell编程;6、mysql应用原理;7、企业级负载集群;8、云计算运维自动化。 想成为合格运维工程师,需要掌握不少技能,Linux运维…

    2026年8月29日
    100
  • win11安卓子系统怎么开启_WSA安卓子系统安装与启用指南

    首先启用Hyper-V和虚拟机平台,通过微软商店或离线包安装WSA,再开启开发者模式并使用ADB连接,即可在Windows 11上运行安卓应用。 如果您希望在Windows 11上运行安卓应用,但发现系统中未启用相关功能,则可能是由于安卓子系统(WSA)尚未正确安装或配置。以下是完成此操作的具体步骤…

    2026年8月29日
    100
  • linux中的apt是什么

    linux中的apt是一款安装包管理工具,它是一个客户/服务器系统。如果我们要利用apt安装软件,可以执行【sudo apt-get install packagename】。 apt简介 Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具。 最初只有.tar…

    2026年8月29日
    100
  • 为什么iPhone7Plus系统升级后屏幕无响应如何强制重启?按电源键和音量减键

    首先强制重启iPhone 7 Plus,同时长按音量减键和电源键约10秒直至出现苹果Logo;若无效,则充电30分钟并连接电脑使用iTunes进入恢复模式恢复系统。 如果您尝试访问某个网站,但服务器无法访问,则可能是由于服务器 IP 地址无法解析。以下是解决此问题的步骤: 本文运行环境:iPhone…

    2026年8月29日
    200
  • VSCode怎么弹出输出框_VSCode输出面板显示与隐藏管理教程

    输出面板是VSCode中用于集中查看任务、扩展、调试和Git等非交互式日志的核心工具,通过快捷键Ctrl+Shift+U快速打开,支持在不同输出通道间切换,可自定义自动弹出行为、位置及外观,与终端(交互式命令执行)和调试控制台(程序运行时交互)形成互补,提升开发效率。 在VSCode中,要弹出输出框…

    2026年8月29日
    300

发表回复

登录后才能评论
关注微信