【golang】将项目部署到Docker

本文介绍了如何编写Dockerfile来构建基于golang的镜像,包括设置工作目录、添加文件、编译Go代码等步骤。然后,通过`dockerbuild`命令创建镜像,并使用`dockerrun`以暴露端口9090并后台运行。在容器网络方面,强调了localhost在容器内的含义以及如何使用主机IP替代。此外,还展示了如何通过`dockerexec`进入容器和`dockercp`进行文件拷贝。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 编写Dockerfile文件

FROM golang:1.19

MAINTAINER "xxx@gmail.com"

WORKDIR /home/go/src/sanHeRecruitment

ADD . /home/go/src/sanHeRecruitment

RUN go build main.go

EXPOSE 9090

ENTRYPOINT ["./main"]

参数解释:

FROM -> 母镜像

MAINTAINER -> 维护者信息

WORKDIR -> 工作目录

ADD -> 将文件复制到镜像中

RUN -> 执行操作(就跟在终端执行语句一样)

EXPOSE -> 暴露端口

ENTRYPOINT -> 程序入口

2. 构建镜像

docker build -t sanhe .
注意镜像名称不能有大写字母

在这里插入图片描述

运行

docker run -p 9090:9090 -d sanhe[images名称]

-p 本机端口:镜像端口
-d 后台运行

注意:当你的项目有需要连接到本地的端口时你不能从容器中使用localhost访问主机上的服务,你必须使用主机的ip地址来访问。
在这里插入图片描述
原因:默认的docker将使用桥,桥将为您的容器设置一个内部网络,所以当容器使用localhost时,它并不意味着主机,它意味着容器自身的网络。
解决办法: --net=host。

docker run --net=host -p 9090:9090 -d sanhe

在这里插入图片描述

简单操作

  1. 进入容器
docker exec -it 49ec8845ac2a(容器名称) bash
  1. 拷贝容器中的文件到宿主机
docker cp 49ec8845ac2a(容器名称):/home/go/src/sanHeRecruitment/logs/system.log.20230318.log(内部路径)  /home(外部路径)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值