拉取portainer镜像
[root@portainer ~]# docker pull portainer/portainer-ce
Using default tag: latest
latest: Pulling from portainer/portainer-ce
57654d40e0a5: Pull complete
1f476acfabd6: Pull complete
5171176db7f2: Pull complete
52e9438966a5: Pull complete
43d4775415ac: Pull complete
c1cad9f5200f: Pull complete
a5e2b359b78b: Pull complete
eb172612bcbb: Pull complete
6be7b2acffb5: Pull complete
391dff0fb880: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:4a1ceadd7f7898d9190ee0a6d22234c4323aefd80e796e84f5e57127f74370f1
Status: Downloaded newer image for portainer/portainer-ce:latest
docker.io/portainer/portainer-ce:latest
[root@portainer ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
portainer/portainer-ce latest a3f85c245ec3 4 weeks ago 293MB
启动portainer容器
[root@portainer ~]# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/docker_portainer:/data --restart=always --name portainer portainer/portainer-ce:latest
4ac38a09f0cfdd089204cf9d730ee2a7db45ba199a2cdf12679cb87948e0e809
-d
:以后台模式运行容器。-p 9000:9000
:将主机的 9000 端口映射到容器的 9000 端口,这样你可以通过访问主机的 9000 端口来访问 Portainer。-v /var/run/docker.sock:/var/run/docker.sock
:将主机的 Docker socket 文件挂载到容器内,以便 Portainer 可以与 Docker 守护进程通信。-v /dockerData/portainer:/data
:将主机的/home/docker_portainer
目录挂载到容器内的/data
目录,以便持久化 Portainer 的数据。--restart=always
:配置容器在重启 Docker 守护进程或主机时自动重启。--name portainer
:为容器指定一个名称portainer
。portainer/portainer-ce:latest
:使用最新版本的 Portainer CE 镜像。
查看portainer容器
[root@portainer ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4ac38a09f0cf portainer/portainer-ce:latest "/portainer" 9 minutes ago Up 9 minutes 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp portainer
[root@portainer ~]# docker logs -f portainer
2024/05/24 03:09AM INF github.com/portainer/portainer/api/cmd/portainer/main.go:369 > encryption key file not present | filename=portainer
2024/05/24 03:09AM INF github.com/portainer/portainer/api/cmd/portainer/main.go:392 > proceeding without encryption key |
2024/05/24 03:09AM INF github.com/portainer/portainer/api/database/boltdb/db.go:125 > loading PortainerDB | filename=portainer.db
2024/05/24 03:09AM INF github.com/portainer/portainer/api/internal/ssl/ssl.go:80 > no cert files found, generating self signed SSL certificates |
2024/05/24 03:09AM INF github.com/portainer/portainer/api/chisel/service.go:193 > Generated a new Chisel private key file | private-key=/data/chisel/private-key.pem
2024/05/24 03:09:05 server: Reverse tunnelling enabled
2024/05/24 03:09:05 server: Fingerprint Q62Jtp060Vnw1aM5ts6ZbcuZ5pX4CmKbhyMqwV7Vm3U=
2024/05/24 03:09:05 server: Listening on http://0.0.0.0:8000
2024/05/24 03:09AM INF github.com/portainer/portainer/api/cmd/portainer/main.go:649 > starting Portainer | build_number=64 go_version=1.21.9 image_tag=linux-amd64-2.19.5 nodejs_version=18.20.2 version=2.19.5 webpack_version=5.88.1 yarn_version=1.22.22
2024/05/24 03:09AM INF github.com/portainer/portainer/api/http/server.go:357 > starting HTTPS server | bind_address=:9443
2024/05/24 03:09AM INF github.com/portainer/portainer/api/http/server.go:341 > starting HTTP server | bind_address=:9000
问题解决
1.端口占用
[root@portainer ~]# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/docker_portainer:/data --restart=always --name portainer portainer/portainer-ce:latest
707d5e5e72c66dde1fe99c9b3b78688b45bab416afdef1e561a7b7133c7584c1
docker: Error response from daemon: driver failed programming external connectivity on endpoint portainer (0adb0a6fd4a4d0edf6ce6ca430e2253cc9171ea914c84d0f85e96821e5f18f0c): Error starting userland proxy: listen tcp4 0.0.0.0:9000: bind: address already in use.
[root@portainer ~]# docker run -d -p 9002:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/docker_portainer:/data --restart=always --name portainer portainer/portainer-ce:latest
4ac38a09f0cfdd089204cf9d730ee2a7db45ba199a2cdf12679cb87948e0e809
-p 部分更换端口,第一个是主机端口,第二个是容器内端口
2.名称占用
[root@app home]# docker run -d -p 9002:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/docker_portainer:/data --restart=always --name portainer portainer/portainer-ce:latest
docker: Error response from daemon: Conflict. The container name "/portainer" is already in use by container "707d5e5e72c66dde1fe99c9b3b78688b45bab416afdef1e561a7b7133c7584c1". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
[root@app home]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
707d5e5e72c6 portainer/portainer-ce:latest "/portainer" 20 seconds ago Created portainer
[root@app home]# docker rm -f 707
707
[root@portainer ~]# docker run -d -p 9002:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/docker_portainer:/data --restart=always --name portainer portainer/portainer-ce:latest
4ac38a09f0cfdd089204cf9d730ee2a7db45ba199a2cdf12679cb87948e0e809
删除重名容器后,重新运行命令