[英]docker-compose displaying all services not the one defined in docker-compose.yml
[英]docker-compose build with multiple services in docker-compose.yml
我是docker-compose的新手,我使用flask和redis構建了一個簡單的Web應用程序,並且在我的本地主機上運行良好,我的問題是如何將包含python和redis圖像的該Web應用程序推送到docker hub並從中提取該圖像不同的機器。
我通常會做docker-compose build,docker push
version: '3'
services:
web:
build: .
image: "alhaffar/flask_redis_app:2.0"
ports:
- "8088:5000"
depends_on:
- redis
redis:
image: "redis:alpine"
Dockerfile
FROM python:3.7
# CHANGE WORKIN DIR AND COPY FILES
WORKDIR /code
COPY . /code
# INSTALL REQUIRED PACAKGES
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
# RUN THE APP
CMD ["python", "./main.py"]
當我嘗試將映像拉入另一台計算機並發出docker run時,它僅運行python映像而沒有redis映像。
我如何運行所有圖像
Dockerhub和其他Docker注冊表使用映像。 Docker-compose只是一個抽象,它通過使用一個配置文件docker-compose來幫助建立一堆可以協同工作的映像。 沒有像docker-compose注冊表那樣的東西。 然后,如果您在另一台機器上有docker-compose文件,則只需使用docker-compose up
並應將圖像拉出-假設它們已發布到某個注冊表(公共/私有)。 如果您使用的是Redis官方映像,則應用程序的映像應由您發布,並且refs將通過dockerhub注冊表獲取。
當您進行一些本地開發並希望快速設置工作環境時,Docker-compose會很有幫助。 如果要在其他計算機上設置此環境,則必須與它們共享docker-compose文件,並在該另一台計算機上安裝docker和docker-compose。
如果您的docker-compose配置為在啟動時構建一些映像,您仍然可以使用docker-compose push
命令推送此映像。
使用Docker Compose腳本,您可以做兩件事:
如果將映像1推入DockerHub並將其拉到另一台機器上,則會丟失第二個映像。
您想要做的是在沒有build
行的第二台機器上運行Docker compose腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.