如何将Docker Compose构建的双镜像项目推送至Docker Hub?
将Flask/React镜像推送至Docker Hub的步骤
前置准备
- 拥有Docker Hub账号,未注册需先完成注册
- 本地Docker服务正常运行,且已通过
docker login命令登录Docker Hub(输入用户名和密码完成验证)
步骤1:修正镜像命名与docker-compose配置
Docker Hub要求镜像格式为[你的Docker Hub用户名]/[镜像名称]:[标签],同时当前你的docker-compose.yml存在错误:两个服务使用了同一个Dockerfile,这会导致前后端镜像构建混乱,需先修正配置:
修正后的docker-compose.yml
services: api: build: context: ./backend # 假设后端代码存放在backend目录下 dockerfile: Dockerfile image: your-dockerhub-username/flask-back:latest # 替换为你的Docker Hub用户名 ports: - "5000:5000" client: build: context: ./frontend # 假设前端代码存放在frontend目录下 dockerfile: Dockerfile image: your-dockerhub-username/react-front:latest # 替换为你的Docker Hub用户名 ports: - "3000:3000"
注:如果前后端代码不在单独目录,需给两个Dockerfile设置不同文件名(比如后端用
Dockerfile.be、前端用Dockerfile.fe),并在dockerfile字段中指定对应文件名。
步骤2:构建符合规范的镜像
在docker-compose.yml所在目录执行以下命令,构建镜像:
docker-compose build
步骤3:推送镜像至Docker Hub
方式1:通过docker-compose批量推送
直接推送所有服务的镜像:
docker-compose push
方式2:单独推送指定镜像
先查看本地镜像列表确认完整镜像名:
docker images
再执行对应推送命令:
# 推送后端镜像 docker push your-dockerhub-username/flask-back:latest # 推送前端镜像 docker push your-dockerhub-username/react-front:latest
验证推送结果
登录Docker Hub官网,进入个人仓库列表,即可看到刚推送的flask-back和react-front镜像。
内容的提问来源于stack exchange,提问作者Negroletti
相关产品推荐
相关产品推荐

