- 查找Docker Hub上的python镜像
docker search python:3.6
-
拉取官方镜像
docker pull python:3.6 -
查看镜像
docker images
-
运行python 文件
docker run -v /usr/local/mypython:/usr/src/myapp -w /usr/src/myapp python:3.6 python testPython.py
- docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
-v 挂载主机上的文件卷到容器
-w 容器内的默认工作目录
–name 容器标签
# 进入容器
[root@xxxxx ~]# docker exec -it python3.6 bash
----------------
# 容器内的工作目录
root@xxxx:/usr/src/myapp# pwd
/usr/src/myapp
root@aaaaa:/usr/src/myapp# ls
testPython.py
- docker file :
FROM python:3.7.1
MAINTAINER hszhang
# 设置时区,执行更新
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone \
&& apt-get update
# flask环境参数变量
ENV FLASK_ENV production
ENV DJANGO_ENV production
ENV SECRET_KEY 123456
启动ssh
# 复制requirements.txt至容器内
COPY sshpass-1.06.tar.gz ./
# 执行命令 增加ssh支持, 安装python依赖库 安装jdk
RUN echo 'root:sscf@cs' | chpasswd \
&& apt-get -y install openssh-server \
&& mkdir /var/run/sshd \
&& mkdir -p /root/.ssh \
&& sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd \
&& sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config \
&& echo "export VISIBLE=now" >> /etc/profile \
&& apt-get -y install default-jdk \
&& tar xvzf sshpass-1.06.tar.gz && cd sshpass-1.06 && ./configure && make && make install && cd ../ && rm -rf sshpass-1.06
# 暴露 22 端口
EXPOSE 22
# 启动sshd
CMD ["/usr/sbin/sshd", "-D"]
linux脚本
#!/bin/bash
# python 容器构建脚本
usage()
{
echo "使用方法:"
echo " build_intfFrame.sh [-p path] [-t tag_name] [-f dockerfile_name] [-h help]"
echo "详细介绍:"
echo " path, 镜像编译的主目录, 约定为项目顶级目录下."
echo " tag_name, 镜像的 tag 名称"
echo " dockerfile_name, 镜像的 dockerfile 文件名"
echo " help, 帮助信息"
exit -1
}
path="/usr/local/python"
tag_name="fin:python_base`date +%Y%m%d%H%M`"
dockerfile_name="python.dockerfile"
while getopts "p:t:f:h" arg #选项后面的冒号表示该选项需要参数
do
case $arg in
p) path="$OPTARG";;
t) tag_name="$OPTARG";;
f) dockerfile_name="$OPTARG";;
h) usage;;
?) usage;;
esac
done
echo "path=$path"
echo "tag_name=$tag_name"
echo "dockerfile_name=$dockerfile_name"
cd $path \
&& sudo docker build -t $tag_name -f $dockerfile_name .