我正在尝试通过运行
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
来创建容器。
容器已创建,但无法使用
localhost:9000
或 localhost:9443
访问 portainer ui 页面
2024/02/26 08:04PM INF github.com/portainer/portainer/api/cmd/portainer/main.go:369 > encryption key file not present | filename=portainer
2024/02/26 08:04PM INF github.com/portainer/portainer/api/cmd/portainer/main.go:392 > proceeding without encryption key |
2024/02/26 08:04PM INF github.com/portainer/portainer/api/database/boltdb/db.go:125 > loading PortainerDB | filename=portainer.db
2024/02/26 08:04PM INF github.com/portainer/portainer/api/chisel/service.go:198 > Found Chisel private key file on disk | private-key=/data/chisel/private-key.pem
2024/02/26 20:04:13 server: Reverse tunnelling enabled
2024/02/26 20:04:13 server: Fingerprint B09pAAGL+wIvi8Ukimf5BoqtdSCmY5eD+fOp9ANHVb8=
2024/02/26 20:04:13 server: Listening on http://0.0.0.0:8000
2024/02/26 08:04PM WRN github.com/portainer/portainer/api/platform/platform.go:70 > failed to retrieve docker info | error="Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"
2024/02/26 08:04PM INF github.com/portainer/portainer/api/cmd/portainer/main.go:649 > starting Portainer | build_number=35428 go_version=1.20.5 image_tag=linux-amd64-2.19.4 nodejs_version=18.19.0 version=2.19.4 webpack_version=5.88.1 yarn_version=1.22.21
2024/02/26 08:04PM INF github.com/portainer/portainer/api/http/server.go:357 > starting HTTPS server | bind_address=:9443
2024/02/26 08:04PM INF github.com/portainer/portainer/api/http/server.go:341 > starting HTTP server | bind_address=9000:9000
2024/02/26 08:04PM ERR github.com/portainer/portainer/api/http/server.go:352 > HTTP server failed to start | error="listen tcp: lookup 9000: no such host"
2024/02/26 08:09PM INF github.com/portainer/portainer/api/adminmonitor/admin_monitor.go:62 > the Portainer instance timed out for security purposes, to re-enable your Portainer instance, you will need to restart Portainer |localhost:9000 or localhost:9443
localhost:9000 - Hmmm… can't reach this page localhost refused to connect.
localhost:9443 - Client sent an HTTP request to an HTTPS server.
您的日志中有两个错误:
很明显,体积安装
/var/run/docker.sock
对于运行Portainer至关重要。
如果我跑步
docker run --rm --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce:latest
然后它会顺利启动,但如果我删除卷安装
docker run --rm --name portainer \
portainer/portainer-ce:latest
然后我得到了和你一样的错误:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running?
这是有道理的:Portainer 需要一种连接到 Docker 守护进程的方法,那就是通过 Docker 套接字。
您检查过 Docker 守护进程是否正在您的计算机上运行吗?
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-02-27 05:18:08 GMT; 3s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 16408 (dockerd)
Tasks: 30
Memory: 37.9M
CPU: 671ms
CGroup: /system.slice/docker.service
└─16408 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
但这似乎并不是一个严重错误:即使我不共享套接字,我仍然可以在端口 9000 上连接到 Portainer。
所以我认为第二个错误(“listen tcp:lookup 9000:没有这样的主机”)是这种情况下的关键错误。老实说,我不确定您为什么会收到此错误。但是您可以尝试一下该命令的精简版本吗:
docker run --rm --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce:latest
您还看到第二个错误吗>?抱歉,我知道这不是一个“答案”,但希望能给您一些尝试的机会。如果您可以提供一些反馈,那么我很乐意进行迭代。否则希望其他人能够发现问题。