0

1424

docker如何访问宿主机的localhost

乐果   发表于   2022 年 12 月 12 日

方法一

1、可以在使用 localhost 的地方替换 host.docker.internal

对于 macwindows,可以使用 host.docker.internal 替换 127.0.0.1,如 mongodb://host.docker.internal:27017

2、对于 linux 可以使用:

创建一个桥接网络 下面的 localNet 是网络名字,可自行修改。关于 192.168.0.0 这个子网,也可以自行定义。 默认按照下面的命令,执行后将可以通过 192.168.0.1 访问宿主机。

docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 localNet

使用 192.168.0.1 替换 127.0.0.1 ,如 mongodb://192.168.0.1:27017

方法二

可以在启动 docker 服务的时候把宿主机的 ip 当作环境变量穿进去

docker run -d --name nginx --env hostip="172.17.32.60" 

可以在容器里面 env|grep hostip 查看 ip 地址

在程序中可以使用代码查询这个环境变量

// cmd 可以传入 env|grep hostip
func Cmd(cmd string) []byte {
    out, err := exec.Command("/bin/bash", "-c", cmd).Output()
    if err != nil {
        return nil
    }
    return out
}

拓展如何访问同一台机器上的其他 docker

……

标签:Docker 继续阅读

0

1090

docker常用技巧

乐果   发表于   2022 年 12 月 11 日

镜像打包

** Dockerfile ** 文件编写

案例:

# 编译arm盒子镜像
FROM --platform=linux/arm64/v8 golang:1.18-alpine3.15  as builder
WORKDIR /usr/src/app
COPY . .
ENV GOPROXY https://goproxy.cn
ENV CGO_ENABLED 0
RUN go mod tidy
RUN CGO_ENABLED=1 go build -v -o /usr/local/bin/app

FROM --platform=linux/arm64/v8 alpine:3.15.4
WORKDIR /data
RUN mkdir "config"; \
    mkdir "logs"; \
    mkdir "resource"; \
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories; \
    apk update && apk upgrade && apk add vim && apk add --no-cache tzdata; \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime; \
    echo "Asia/Shanghai" > /etc/timezone; \
    rm -rf /var/cache/apk/*
COPY --from=builder /usr/local/bin/app /data
COPY --from=builder /usr/src/app/config/config.toml /data/config
ENTRYPOINT ["./app", "-c", "/data/config/config.toml"]

构建镜像 并推送至仓库

案例:

docker buildx build --push --platform linux/arm64/v8 -t hub.wesais.cn/edge/monibuca-arm-v8:v3.0 -f DockerfileArmV8 .


实例构建与运行

docker run -d --name go-blog \
--restart=always \
-p 18081:8080 \
-v /data/go-blog/data:/data/data \
hub.wesais.cn/edge/go-blog-arm:v.22.1210.01 \
-server 0.0.0.0:8080


容器实例编排

……

标签:Docker 继续阅读

0

6288

git仓库管理实例场景

乐果   发表于   2020 年 02 月 24 日

本地git仓库初始化,关联远程git仓库,强行合并、推送至远程

1、假如本地代码目录src

2、远程仓库地址:git@src.nuguo.cn:ppos-pro/ppos-vue-admin.git

操作如下:

#进入代码目录
cd ~/src

#git仓库初始化
git init

#将代码文件添加至本地git仓库
git add --all .

#提交至本地git仓库
git commit -am "初始化仓库"

#添加远程
git remote add origin/master git@src.nuguo.cn:ppos-pro/ppos-vue-admin.git

#添加关联
git branch --set-upstream-to=origin/master master

#若执行 `git pull` 会报错,是因为git发现本地仓库和远程仓库之间的文件没有必然关联,此时可以强行合并,如下:

#强行合并
git pull origin master --allow-unrelated-histories

#推送至远程仓库
git push origin master

fork到个人仓库后,合并“源仓库”的提交请求

1、远程公共协作仓库地址:git@src.nuguo.cn:ppos-pro/ppos-vue-admin.git

2、fork后个人私有仓库地址:git@src.nuguo.cn:unphp/ppos-vue-admin.git

基于个人私有仓库本地的git常见操作,如下:

……

标签:git 继续阅读

0

3935

docker基础命令笔记

乐果   发表于   2019 年 10 月 25 日

docker 基础命令

查看镜像:

docker image ls

查看运行中的实例:

docker ps

查看所有的实例(包括停止的):

docker ps -a

……

标签:Docker 继续阅读

0

4843

从程序员枪杀案谈git push -f

乐果   发表于   2019 年 06 月 22 日

程序员不老老实实的当键盘侠,搞起自己的同事?

目前,码农持枪杀人的动机仍然是个谜。有人猜测道:“同事不写注释,不遵循驼峰命名,括号换行,最主要还天天git push –f等因素”激怒了这名行凶者。

看到上面的原因,感觉太假了,“天天git push –f”,开什么玩笑,第一天这么干就被打断腿了好不好?

……

标签:git 继续阅读

较旧的笔记 较新的笔记