使用Docker和Docker Compose创建映像

时间:2019-10-18 17:05:48

标签: docker docker-compose

我是Docker的新手,我试图创建一个docker映像并使用docker容器,所以我做了以下事情:

我的Dockerfile是:

## Limit Riyadh schools only to schools teaching both genders
two_gender_schools <- filter(riyadh_scores, school_name == "",
                             gender == "male", gender == "female")

我的dockerCompose文件是:

FROM ubuntu:16.04

# # Front stack
# RUN apt-get install -y npm && \
#     npm install -g @angular/cli

FROM python:3.6

RUN apt-get update
RUN apt-get install -y libpython-dev curl build-essential unzip python-dev libaio-dev libaio1 vim 
rpm2cpio cpio python-pip dos2unix

RUN mkdir /code
COPY ./requirements.txt /code/requirements.txt
RUN pip install -r /code/requirements.txt
RUN pip install --upgrade pip
COPY . /code/
WORKDIR /code
ENV PYTHONPATH=/code/py_lib
CMD ["bash", "-c", "tail -f /dev/null"]

我执行了以下命令:

  

docker build。 -f Dockerfile

     

码头工人图像

enter image description here

  

docker-compose up

这给了我一个错误:

version: '3.5'
services:
   testsample:
       image: toto/test-sample
    restart: unless-stopped
    env_file:
        - .env        
    command: bash -c "pip3 install -r requirements.txt && tail -f /dev/null"
    # command: bash -c "tail -f /dev/null"
    volumes:
        - .:/code

我尝试了docker登录并能够连接。

那会导致什么问题呢?

3 个答案:

答案 0 :(得分:1)

在使用如下所示的docker文件构建docker映像时,必须提供标签名称:

docker build -t toto/test-sample -f Dockerfile .

-t这里是标签名称 -f用来告诉Dockerfile的名称(在这种情况下,它是可选的,因为Dockerfile是默认名称)

答案 1 :(得分:1)

如果将Dockerfiledocker-compose.yml文件放在同一目录中,则可以执行以下操作:

version: '3.5'
services:
   testsample:
       image: toto/test-sample
       build:
         context: .
         dockerfile: Dockerfile
       restart: unless-stopped
       env_file:
         - .env        
       volumes:
         - .:/code

然后,做:

docker-compose up --build -d

否则,如果仅在构建图像时遇到问题,则只需执行以下操作:

docker build -t toto/test-sample .

答案 2 :(得分:0)

build命令应为:

docker build -t toto/test-sample .