一、应用场景
EXAMPLE:以容器形式将系统部署到Azure云后,希望进入容器内进行操作,进行日志文件查看等操作,需要通过Azure控制台 》 高级工具 》 ssh中进行远程连接。
二、实现
Dockerfile
FROM centos:7
# 声明镜像内工作目录
WORKDIR /home/myapp
# 复制项目 》 容器内目录
COPY ./ /home/myapp
# 安装python环境
RUN yum -y install epel-release \
&& yum repolist \
&& yum -y install python36
# 安装ssh组件
RUN yum -y install net-tools openssh-server openssh-clients \
&& ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \
&& ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# 安装项目依赖
RUN pip3 install --upgrade pip \
&& pip3 install cython \
&& pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 声明端口
EXPOSE 22 # ssh端口
EXPOSE 5001 # 服务端口
# 运行指令
CMD /usr/sbin/sshd -D && gunicorn -w 2 -b 0.0.0.0:5001 app:app
三、坑&遗留问题
- 开始打算直接使用Docker的Python镜像,结果发现没有yum指令。
- 使用apt指令安装ssh包找不到镜像。yum包也找不到。