dockerfile
Flask 启动自带的 webser 服务器。
FROM python:3.7
MAINTAINER kgzhang
WORKDIR /batch_test
ENV PATH="/batch_test:usr/bin:${PATH}"
COPY $PWD/ /batch_test/
RUN pip install --no-cache -r /batch_test/requirement.txt\
#-f /batch_test/local_source\
-i http://mirrors.aliyun.com/pypi/simple/\
--extra-index-url https://pypi.python.org/simple\
--trusted-host mirrors.aliyun.com
EXPOSE 8889
EXPOSE 22
CMD python3 mainv3_1.py
#####################################
# build container
# docker build -t batch_test:xx_tag .
打包 docker image
进入 dockerfile 所在的目录,执行:
docker build -t batch_test:v3.1_m1 .
生成容器
docker run -it -d --name batch_test_v31_m8 -p 8889:8889 batch_test:v3.1_m7
查看容器状态
docker ps -a
查看输出日志
如果容器显示很快 exit,很可能是编写的 dockerfile 有误:
docker logs container id
进入打开的容器
如果显示某文件找不到,还需要进入到容器内部。
docker exec contain_id command
contain_id不必写完,写前几位就可以,这点是和使用 Git 时的 commit_id 是一致的;
command 就是创建容器时的 command, 执行
举例,进入 centos 容器
docker exec -it 0ee5 /bin/bash
如果容器不能正常启动,那么使用此命令也不能进入到容器中。这种情况下,可以注释掉 CMD
,重新生成一个镜像。
排查镜像
这个命令会创建一个容器,并且以 /bin/bash 的方式进去,这样就可以排查打包是否正确了。
docker run -it image_xxx /bin/bash