(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
在新服务器命令行输入:
[root@localhost ~]# docker build -t vesoft/centos7-anaconda3 .
命令行输入 docker images 即可看到新创建的镜像
[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 为镜像名
[root@localhost ~]# docker exec -it 472e1bfce19a bash
[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
[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
服务命令安装(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
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
2)添加UsePAM no
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),登录进入也行。
见其他博客
[root@localhost ~]# docker commit -m “centos7-anaconda3” b6925da68659 centos7-anaconda3:v1
b6925da68659 :容器id
centos7-anaconda3:目标镜像的仓库名
v1:tag
将镜像 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