基于docker的anaconda环境安装,用ssh登录docker

1 准备

(1) Dockerfile文件
内容如下:

From centos:7.5.1804
# Install some basic utilities
# Create a working directory
RUN mkdir /app
#WORKDIR /app
# Create a non-root user and switch to it
#RUN adduser --disabled-password --gecos '' --shell /bin/bash user \
#       && chown -R user:user /app
#RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
#USER user

# 复制宿主机中的anaconda 到 镜像
COPY Anaconda3-5.2.0-Linux-x86_64.sh /app/
#RUN bash /app/anaconda.sh -b -p /data
# 复制宿主机中的python代码到 镜像
COPY -r python_project /app/
EXPOSE 80

(2)anaconda安装包: Anaconda3-5.2.0-Linux-x86_64.sh (对应python3.6.5)
(3)python 工程代码:python_project

2、根据dockerfile文件创建镜像

在新服务器命令行输入:

[root@localhost ~]# docker build -t vesoft/centos7-anaconda3 .

命令行输入 docker images 即可看到新创建的镜像

3、启动镜像为容器

[root@localhost ~]# docker run -itd --privileged=true -p 50022:22 --name centos7-anaconda3 vesoft/centos7-anaconda3 /usr/sbin/init

-p 为指定端口
-d 后台运行
–name 命名容器
–privileged 使用该参数,container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。
vesoft/centos7-anaconda3 为镜像名

4、容器内安装anaconda并进行环境变量配置

进入容器内部

[root@localhost ~]# docker exec -it 472e1bfce19a bash

安装anaconda

[root@b6925da68659 app]# sh Anaconda3-5.2.0-Linux-x86_64.sh

一路回车向下,在需要输入的地方,输入yes(除了最后一个,问是否安装vscode 编辑器)

若出现错误,提示找不到bunzip2:

Anaconda3-5.2.0-Linux-x86_64.sh: line 353: bunzip2: command not found
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

安装bunzip2

[root@b6925da68659 app]# yum install -y bzip2

测试conda是否加入环境变量

[root@b6925da68659 app]# conda -V

若提示没有 conda 命令,自行配置环境变量
编辑profile文件

[root@b6925da68659 app]# vi /etc/profile

在文件最后加入如下语句(路径需要根据自己的安装位置更改):

PATH=$PATH:/root/anaconda3/bin
export PATH

保存后,刷新环境变量

[root@b6925da68659 app]# source /etc/profile
[root@b6925da68659 app]# source ~/.bashrc

5、其他需要安装的

服务命令安装(service):

[root@b6925da68659 app]# yum install -y initscripts

gcc , gcc-c++安装(安装编译python库的时候会用到)

[root@b6925da68659 app]# yum -y install gcc gcc-c++

contab 安装

[root@b6925da68659 app]# yum install crontabs

6、用ssh登录docker

1、安装openssh

[root@b6925da68659 app]# yum install -y openssh-server
[root@b6925da68659 app]# yum -y install openssh-clients

2、设置root密码:

>[root@b6925da68659 app]# passwd    #如果没有该命令 使用yum install passwd安装
Changing password for user root.
New password:                    #设置新密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:             #确认新密码
passwd: all authentication tokens updated successfully.

3、vim /etc/ssh/sshd_config,修改下面配置,使得可以直接使用root登录:

1)添加PermitRootLogin yes
基于docker的anaconda环境安装,用ssh登录docker_第1张图片
2)添加UsePAM no
基于docker的anaconda环境安装,用ssh登录docker_第2张图片
4、启动ssh服务,并设置开机自启动

[root@b6925da68659 app]# service sshd restart
[root@b6925da68659 app]# chkconfig sshd on

5、测试
测试1:
exit退出docker,输入docker ps -a,查看docker的ID
打开一个新终端,通过ssh [email protected] -p 50022 进入docker
测试2:
直接配置在xshell中新设置一个会话,添加加我们之前设置的端口号(50022),登录进入也行。

7、python工程依赖包安装

见其他博客

8、容器保存为一个新的镜像,以便以后基于该镜像启动

[root@localhost ~]# docker commit -m “centos7-anaconda3” b6925da68659 centos7-anaconda3:v1

b6925da68659 :容器id
centos7-anaconda3:目标镜像的仓库名
v1:tag

9、镜像本地化保存

将镜像 centos7-anaconda3:v1 生成 centos7anaconda3.tar 文档,存于当前目录

[root@localhost ~]# docker save -o centos7anaconda3.tar centos7-anaconda3:v1

然后在其他服务器载入镜像:

[root@localhost ~]# docker load < centos7anaconda3.tar

注:本博客参考: https://blog.csdn.net/hpf247/article/details/80078240

你可能感兴趣的:(基础服务,docker,ssh,容器,anaconda,python)