【golang】将项目部署到Docker

1. 编写Dockerfile文件

FROM golang:1.19

MAINTAINER "[email protected]"

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 .

注意镜像名称不能有大写字母

【golang】将项目部署到Docker_第1张图片

运行

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

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

注意:当你的项目有需要连接到本地的端口时你不能从容器中使用localhost访问主机上的服务,你必须使用主机的ip地址来访问。
【golang】将项目部署到Docker_第2张图片
原因:默认的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(外部路径)

你可能感兴趣的:(docker,golang,容器)