Phi*_*l O 3 docker docker-compose
我创建了一个Dockerfileanddocker-compose.yml文件。我可以docker-compose up在 Windows 10 上运行,它会构建然后运行我的 Django Web 应用程序。然后我可以成功浏览127.0.0.1:7000并运行我的 Web 应用程序。
我的问题是,一旦退出,如何启动我的图像而不docker-compose up再次运行?
当我打字时,docker images我看到两个图像:python和my_web_app。我试过了
docker run --publish 7000:8000 -- detach my_web_app
Run Code Online (Sandbox Code Playgroud)
但它立即退出。
我的 Dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN useradd user
USER user
Run Code Online (Sandbox Code Playgroud)
我的 docker-compose.yml
version: "3"
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "7000:8000"
Run Code Online (Sandbox Code Playgroud)
在docker-compose.yml文件中,您编写了build: .,它使用路径中的 Dockerfile. 并创建一个名为 my_web_app 的映像。
您有 2 个映像,因为 Dockerfile 中使用 Python 作为基础映像,因此 docker 首先提取该映像。另一个是作为结果图像创建的(其中包含 python)。
现在,当您运行此命令时:
docker run --publish 7000:8000 -- detach my_web_app
Run Code Online (Sandbox Code Playgroud)
它创建一个容器,但会立即退出,因为它没有要运行的命令/进程。
在 中docker-compose.yml,存在command: python manage.py runserver 0.0.0.0:8000在容器内运行此命令的情况。
运行新容器的两种简单方法是:
Run Code Online (Sandbox Code Playgroud)docker run --publish 7000:8000 -- detach my_web_app python manage.py runserver 0.0.0.0:8000它在容器内运行指定的命令。
- 或者您可以使用
docker exec -ti my_web_app并添加要在 >this 之后运行的命令。
| 归档时间: |
|
| 查看次数: |
2127 次 |
| 最近记录: |