当按照此docker指令部署私有注册表时,我必须在CLI中指定端口以像这样推送映像:
对于http(80),命令为:docker push host.com:80/alpine。对于https(443),命令必须为:docker push host.com:443/alpine。如果将端口映射到5000,则命令为:docker push host.com:5000/alpine。
所需的效果是像这样的简单推送:
docker push host.com/alpine
docker run启动注册表容器时,如何构造完整的命令来实现此目的?
我正在尝试编写简单的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) 我有一个 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 客户端: …