goland远程调试Docker

本文介绍如何在Goland中配置远程开发环境,通过Docker在CentOS上运行容器。详细步骤包括修改Docker服务配置,启用特定端口,以及使用SFTP上传代码。

开发环境

goland windows10
Docker centos IP:123.57.43.91

操作原理及流程

goland通过tcp/8080(应该选取2375,登录阿里云开启这个端口,这里临时采用)端口与docker-host通信, 发送docker指令,然后让linux执行,通过docker指令,创建image,运行container,实现host与container之间目录挂载,端口映射等操作。然后使用SFTP进行代码的上传 。

配置端口和重启

sudo vim /lib/systemd/system/docker.service

第18行

  1 [Unit]
  2 Description=Docker Application Container Engine
  3 Documentation=http://docs.docker.com
  4 After=network.target
  5 Wants=docker-storage-setup.service
  6 Requires=docker-cleanup.timer
  7 
  8 [Service]
  9 Type=notify
 10 NotifyAccess=main
 11 EnvironmentFile=-/run/containers/registries.conf
 12 EnvironmentFile=-/etc/sysconfig/docker
 13 EnvironmentFile=-/etc/sysconfig/docker-storage
 14 EnvironmentFile=-/etc/sysconfig/docker-network
 15 Environment=GOTRACEBACK=crash
 16 Environment=DOCKER_HTTP_HOST_COMPAT=1
 17 Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin

 18 ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:8080 -H unix://var/run/docker.sock\      
                                                                           
 19           --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
 20           --default-runtime=docker-runc \
 21           --exec-opt native.cgroupdriver=systemd \
 22           --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
 23           --init-path=/usr/libexec/docker/docker-init-current \
 24           --seccomp-profile=/etc/docker/seccomp.json \
 25           $OPTIONS \
 26           $DOCKER_STORAGE_OPTIONS \
 27           $DOCKER_NETWORK_OPTIONS \
 28           $ADD_REGISTRY \
 29           $BLOCK_REGISTRY \
 30           $INSECURE_REGISTRY \
 31       $REGISTRIES
 32 ExecReload=/bin/kill -s HUP $MAINPID

重启服务

 systemctl daemon-reload
 sudo service docker restart

启动Docker

连接Docker服务器,标志:Connection successful

在这里插入图片描述

配置Docker run

  1. Image ID :附录I, 图1
  2. Container name: 指定容器名称
  3. Bind Ports:ip
  4. Bind mounts: Docker文件存储位置
  5. –privileged: 挂载权限
    在这里插入图片描述

SFTP连接

请添加图片描述请添加图片描述

附录

图1

进行选取name的时候用的是Value一列的值
在这里插入图片描述

### Goland 配置和使用 Docker 的教程 #### 一、配置 GoLand 开发环境以支持 Docker 为了在 Goland 中集成并使用 Docker,可以按照以下方法完成设置。 1. **创建一个新的 Go 构建配置** 打开 Goland 并进入 `Run/Debug Configurations` 页面。点击加号 (`+`) 创建新的配置选项,并选择 `Go Build` 类型。在此过程中,需要指定目标文件以及项目的入口函数位置[^1]。 2. **连接到 Docker 容器服务** 在 Goland 的偏好设置中找到 `Build, Execution, Deployment -> Docker` 菜单项。通过该界面添加 Docker 连接信息,包括服务器地址(通常是默认的 Unix Socket 或 TCP 地址),同时确认虚拟机路径映射至本地工作目录的位置是否正确。 3. **编写自定义 Dockerfile 文件** 新增一个名为 `Dockerfile` 的文本文件于项目根目录下,输入如下基础内容来定义所需的开发镜像: ```dockerfile FROM golang:latest WORKDIR /app COPY . . RUN go mod download && go build -o main . CMD ["./main"] ``` 此脚本基于官方 Golang 镜像构建应用上下文,并复制当前源码副本进去执行必要的依赖安装操作最后生成可执行二进制程序。 --- #### 二、运行带有端口绑定的服务实例 如果计划部署 Web 应用或者数据库组件,则需额外考虑主机与容器间网络交互情况。例如启动 HTTP API Server 可利用命令行工具快速验证效果: ```bash docker run -itd \ -p 8081:8081 \ # 将宿主机上的8081端口转发给容器内部对应监听点 -v $(pwd):/go/src/app \ # 把当前所在的工作区挂载远程共享存储空间供调试用途 --name my-go-app # 自定义名称方便管理识别 your_image_name # 替换实际使用的镜像标签名 ``` 上述例子展示了如何把外部访问请求重定向至特定进程处理逻辑的同时保持数据一致性同步更新[^2]。 然而需要注意的是,在某些场景里可能会遇到资源冲突现象比如 MySQL 数据库引擎无法正常初始化成功提示错误消息:“Ports are not available: listen tcp 0.0.0.0:3306”。这通常意味着另一个正在占用相同编号范围内的其他软件阻止了预期行为的发生因此建议调整参数值避开已知繁忙区间再试一次尝试解决办法之一就是更改分配策略避免碰撞风险[^3]。 --- #### 三、常见问题排查指南 当面对诸如 “MySQL 启动失败” 等异常状况时可以从以下几个方面入手分析原因并采取相应措施加以修复: - 检查是否有重复开启的服务抢占所需通信接口; - 修改 compose yaml 文档中的 port mapping section 来实现动态适配功能; - 清理残留的历史记录防止干扰新版本加载过程顺利进行下去; 以上步骤能够有效提升整体稳定性表现水平从而保障整个系统的高效运转状态得以维持长久不变。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值