dockerfile

Flask 启动自带的 webser 服务器。

  1. FROM python:3.7
  2. MAINTAINER kgzhang
  3. WORKDIR /batch_test
  4. ENV PATH="/batch_test:usr/bin:${PATH}"
  5. COPY $PWD/ /batch_test/
  6. RUN pip install --no-cache -r /batch_test/requirement.txt\
  7. #-f /batch_test/local_source\
  8. -i http://mirrors.aliyun.com/pypi/simple/\
  9. --extra-index-url https://pypi.python.org/simple\
  10. --trusted-host mirrors.aliyun.com
  11. EXPOSE 8889
  12. EXPOSE 22
  13. CMD python3 mainv3_1.py
  14. #####################################
  15. # build container
  16. # docker build -t batch_test:xx_tag .

打包 docker image

进入 dockerfile 所在的目录,执行:

  1. docker build -t batch_test:v3.1_m1 .

生成容器

  1. docker run -it -d --name batch_test_v31_m8 -p 8889:8889 batch_test:v3.1_m7

查看容器状态

  1. docker ps -a

查看输出日志

如果容器显示很快 exit,很可能是编写的 dockerfile 有误:

  1. docker logs container id

进入打开的容器

如果显示某文件找不到,还需要进入到容器内部。

  1. docker exec contain_id command

contain_id不必写完,写前几位就可以,这点是和使用 Git 时的 commit_id 是一致的;
command 就是创建容器时的 command, 执行
举例,进入 centos 容器

  1. docker exec -it 0ee5 /bin/bash

如果容器不能正常启动,那么使用此命令也不能进入到容器中。这种情况下,可以注释掉 CMD ,重新生成一个镜像。

排查镜像

这个命令会创建一个容器,并且以 /bin/bash 的方式进去,这样就可以排查打包是否正确了。

  1. docker run -it image_xxx /bin/bash