golang的docker 简单部署

基础的环境

1 go程序
2 mysql
3 redis

最开始搭建的想法

我就是想单独的创建三个docker,然后链接使用,就是go可以链接mysql和redis

开始搭建

1 首先创建一个docker的网络,将这三个容器全部放入这个网段中,他们才可以通过内网访问,可能会有人问,为什么不使用外网,这个原因有很多,就不一一说了,就说一个,对于mysql和redis,我只需要他们的入口只有一个,那就是go程序
先看一下你现已有,已存在的docker网络,如果有空余的bridge,就不用创建了

docker network ls

我们默认使用桥接模式,你也可以自己自定义

docker network create appNetwork(网络名称随意,但后面需要使用)
docker network create --driver bridge appNetwork

--drvier:创建的网络的类型:win一般为nat linux为 bridge
--subnet=172.20.0.3/16  也可以指定子网和网关,我一般指定,只使用drvier,后面的让它自动分配
--gateway=172.20.0.1

2 将容器加入到网络中;
可以在容器启动时,指定加入的网络,使用

docker run -itd 。。。。 --network appNetwork 。。。

如果你的容器已经启动了,但是没有加入到网络中 也没事,使用

docker network connect appNetwork yourContainerNameOrId

然后使用下面的命令看一下这个网络中已经加入的容器

docker network inspect appNetwork

注意:所有需要链接的容器,需要在同一个网络中,内网

3 配置内网ip以及确保指定的端口已经允许暴漏出来,还有就是需要配置好帐密。(ip在docker network inspect 中还有展示)
4 启动使用

其实这些操作 可以使用docker-compose 来解决,直接一个docker-compose文件做好配置 也可以启动使用,更简单,但是对与这种情况 可以了解一下。

对了 附带一下,简单的docker file 文件

FROM golang:1.17 AS build

LABEL author="weishunuan@163.com"

WORKDIR /workspace/app

ARG go_proxy=https://goproxy.cn

ENV GO111MODULE=on \
    GOPROXY=${go_proxy} \
    CGO_ENABLED=0

COPY . .

EXPOSE 8181

RUN  go mod tidy  && go build -a -o main main.go

ENTRYPOINT ["./main"]

docker 的打镜像

 docker build -t mytestapp:v1 .
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值