小编ser*_*ndr的帖子

docker推送到私有注册表:如何不指定端口

当按照此docker指令部署私有注册表时,我必须在CLI中指定端口以像这样推送映像:

对于http80),命令为:docker push host.com:80/alpine。对于https443),命令必须为:docker push host.com:443/alpine。如果将端口映射到5000,则命令为:docker push host.com:5000/alpine

所需的效果是像这样的简单推送: docker push host.com/alpine

docker run启动注册表容器时,如何构造完整的命令来实现此目的?

docker docker-registry

5
推荐指数
1
解决办法
1613
查看次数

如何在golang中动态编写http.HandleFunc()?

我正在尝试编写简单的http服务器,它将为API提供请求.这是一个代码:

type Config struct {
    ListenPort int `json:"listenPort"`
    Requests   []struct {
        Request      string `json:"request"`
        ResponceFile string `json:"responceFile"`
    } `json:"requests"`
}
...

func main() {
    ...
    startServer(config)
}

func startServer(config Config) {
    http.HandleFunc(apiPrefix+config.Requests[0].Request,
        func(w http.ResponseWriter, r *http.Request) {
            var dataStruct interface{}
            err := loadJSON(config.Requests[0].ResponseFile, &dataStruct)
            if err != nil {
                w.Write([]byte("Oops! Something was wrong"))
            }
            data, _ := json.Marshal(dataStruct)
            w.Header().Set("Content-Type", "application/json")
            w.Write(data)
        })

    http.HandleFunc(apiPrefix+config.Requests[1].Request,
        func(w http.ResponseWriter, r *http.Request) {
            var dataStruct interface{}
            err := loadJSON(config.Requests[1].ResponseFile, &dataStruct)
            if err != nil { …
Run Code Online (Sandbox Code Playgroud)

api http go

1
推荐指数
1
解决办法
804
查看次数

通过其他docker容器访问ftp服务

我有一个 Golang 应用程序,它应该连接到 FTP 服务器。

现在,Golang app 和 FTP Server 都已dockerized,但我不知道如何从 Golang app 连接到 FTP 服务器

这是我的 docker-compose.yml

version: '2'

services:
  myappgo:
    image: myappgo:exp
    volumes:
      - ./volume:/go
    networks:
      myappgo_network:
    env_file:
      - test.env

  ftpd-server:
    container_name: ftpd-server
    image: stilliard/pure-ftpd:hardened
    ports:
      - "21:21"
      - "30000-30009:30000-30000"
    environment:
      PUBLICHOST: "localhost"
      FTP_USER_NAME: "test"
      FTP_USER_PASS: "test"
      FTP_USER_HOME: "/home/test"
    restart: on-failure
    networks:
      myappgo_network:

networks:
  myappgo_network:
Run Code Online (Sandbox Code Playgroud)

当我运行 docker compose 时,所有服务都已启动。

我可以通过以下方式获取 ftp 容器的 IP:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ftpd-server
Run Code Online (Sandbox Code Playgroud)

然后,我在我的 golang 容器 lftp 中为 alpine 安装了一个 ftp 客户端: …

ftp docker docker-compose docker-networking

0
推荐指数
1
解决办法
9606
查看次数