docker中安装centos镜像,并在镜像中安装anaconda+tensorflow+keras+opencv

1.直接通过docker hub上的centos镜像安装centos

docker search centos

[docker@localhost education]$ docker search centos
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   5433                [OK]                
ansible/centos7-ansible            Ansible on Centos7                              121                                     [OK]
jdeathe/centos-ssh                 CentOS-6 6.10 x86_64 / CentOS-7 7.6.1810 x86鈥  110                                     [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session鈥  91                                      [OK]
centos/mysql-57-centos7            MySQL 5.7 SQL database server                   57                                      
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              57                                      [OK]
tutum/centos                       Simple CentOS docker image with SSH access      44                                      
centos/postgresql-96-centos7       PostgreSQL is an advanced Object-Relational 鈥  37                                      
kinogmt/centos-ssh                 CentOS with SSH                                 27                                      [OK]
centos/php-56-centos7              Platform for building and running PHP 5.6 ap鈥  20                                      
guyton/centos6                     From official centos6 container with full up鈥  10                                      [OK]
pivotaldata/centos-gpdb-dev        CentOS image for GPDB development. Tag names鈥  10                                      
drecom/centos-ruby                 centos ruby                                     6                                       [OK]
mamohr/centos-java                 Oracle Java 8 Docker image based on Centos 7    3                                       [OK]
darksheer/centos                   Base Centos Image -- Updated hourly             3                                       [OK]
pivotaldata/centos                 Base centos, freshened up a little with a Do鈥  3                                       
pivotaldata/centos-mingw           Using the mingw toolchain to cross-compile t鈥  2                                       
miko2u/centos6                     CentOS6 鏃ユ湰瑾炵挵澧                                  2                                       [OK]
pivotaldata/centos-gcc-toolchain   CentOS with a toolchain, but unaffiliated wi鈥  1                                       
indigo/centos-maven                Vanilla CentOS 7 with Oracle Java Developmen鈥  1                                       [OK]
mcnaughton/centos-base             centos base image                               1                                       [OK]
blacklabelops/centos               CentOS Base Image! Built and Updates Daily!     1                                       [OK]
pivotaldata/centos7-dev            CentosOS 7 image for GPDB development           0                                       
smartentry/centos                  centos with smartentry                          0                                       [OK]
pivotaldata/centos6.8-dev          CentosOS 6.8 image for GPDB development         0                                       
docker pull centos

安装好centos后

docker中进入容器:

docker run -it -p 10000:80 centos:latest /bin/bash

 

在centos中安装anaconda,因为该镜像里太干净,因此需要先安装一些常用命令

yum -y install vim
yum -y install wget

安装anaconda3

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.1.0-Linux-x86_64.sh
bash Anaconda3-5.1.0-Linux-x86_64.sh

直接用bash,会报错,说是在该路径下已经存在anaconda3

网上有文章说是用如此修改即可

bash Anaconda3-5.1.0-Linux-x86_64.sh -u

然而我还是报错了,没有安装bunzip2

安装bunzip2

yum install -y bzip2

然后接着安装anaconda3

bash Anaconda3-5.1.0-Linux-x86_64.sh -u

刚装好的anaconda3中pip 、conda是不能用的,需要更新环境变量,且更新环境变量后,还需要更新保存。

安装好后,修改环境变量

vim /etc/profile
export PATH=$PATH:/root/anaconda3/bin

修改环境变量后,需要保存

source /root/.bashrc

这时候 输入 pip list 可以查看已安装的包,如果可以查看,代表anaconda3安装成功

然后就可以安装需要的包了

pip install tensorflow==1.9.0
pip install keras==2.2.2
pip install opencv-python==3.4.3
pip install opencv-contrib-python==3.4.4.19

安装opencv-python时出现错误

[root@f32a30e8fdc4 /]# pip install opencv-python==3.4.3
Collecting opencv-python==3.4.3
  ERROR: Could not find a version that satisfies the requirement opencv-python==3.4.3 (from versions: 3.1.0.4, 3.1.0.5, 3.2.0.6, 3.2.0.7, 3.2.0.8, 3.3.0.9, 3.3.0.10, 3.3.1.11, 3.4.0.12, 3.4.0.14, 3.4.1.15, 3.4.2.16, 3.4.2.17, 3.4.3.18, 3.4.4.19, 3.4.5.20, 4.0.0.21, 4.0.1.23, 4.0.1.24, 4.1.0.25)
ERROR: No matching distribution found for opencv-python==3.4.3

说是不存在这个版本的opencv-python,然后列了一大推的版本号,但是我再windows下的版本号就是这个呀,不清楚了

最后,我只好把版本号改为3.4.3.18了。

这样所需要的软件跟包就安装好了。

接下来就是要运行该有的Python文件了,运行Python文件,需要可视化的,那我这需要安装一个pycharm。

 

curl https://download.jetbrains.8686c.com/python/pycharm-community-2018.1.4.tar.gz


[root@f32a30e8fdc4 /]# curl https://download.jetbrains.8686c.com/python/pycharm-community-2018.1.4.tar.gz
Warning: Binary output can mess up your terminal. Use "--output -" to tell 
Warning: curl to output it to your terminal anyway, or consider "--output 
Warning: <FILE>" to save to a file.

把curl改为wget

[root@f32a30e8fdc4 /]# wget https://download.jetbrains.8686c.com/python/pycharm-community-2018.1.4.tar.gz    
--2019-07-02 09:25:31--  https://download.jetbrains.8686c.com/python/pycharm-community-2018.1.4.tar.gz
Resolving download.jetbrains.8686c.com (download.jetbrains.8686c.com)... 61.147.228.247, 124.225.168.58, 240e:f7:d100::78
Connecting to download.jetbrains.8686c.com (download.jetbrains.8686c.com)|61.147.228.247|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 271284732 (259M) [application/octet-stream]
Saving to: 'pycharm-community-2018.1.4.tar.gz'

26% [===================================================>              

解压

tar -xf pycharm-community-2018.1.4.tar.gz

进入解压后的bin目录进行安装

[root@f32a30e8fdc4 /]# tar -xf pycharm-community-2018.1.4.tar.gz
[root@f32a30e8fdc4 /]# ll
total 1393844
-rw-r--r--   1 root root 577996269 Feb 15  2018 Anaconda3-5.1.0-Linux-x86_64.sh
-rw-r--r--   1 root root 577996269 Feb 15  2018 Anaconda3-5.1.0-Linux-x86_64.sh.1
-rw-r--r--   1 root root     12082 Mar  5 17:36 anaconda-post.log
lrwxrwxrwx   1 root root         7 Mar  5 17:34 bin -> usr/bin
drwxr-xr-x   5 root root       360 Jul  2 07:47 dev
drwxr-xr-x   1 root root        93 Jul  2 07:49 etc
drwxr-xr-x   2 root root         6 Apr 11  2018 home
lrwxrwxrwx   1 root root         7 Mar  5 17:34 lib -> usr/lib
lrwxrwxrwx   1 root root         9 Mar  5 17:34 lib64 -> usr/lib64
drwxr-xr-x   2 root root         6 Apr 11  2018 media
drwxr-xr-x   2 root root         6 Apr 11  2018 mnt
drwxr-xr-x   2 root root         6 Apr 11  2018 opt
dr-xr-xr-x 370 root root         0 Jul  2 07:47 proc
drwxr-xr-x  10 root root       157 Jul  2 09:28 pycharm-community-2018.1.4
-rw-r--r--   1 root root 271284732 May 31  2018 pycharm-community-2018.1.4.tar.gz
dr-xr-x---   1 root root       141 Jul  2 08:20 root
drwxr-xr-x   1 root root         6 Jul  2 08:08 run
lrwxrwxrwx   1 root root         8 Mar  5 17:34 sbin -> usr/sbin
drwxr-xr-x   2 root root         6 Apr 11  2018 srv
dr-xr-xr-x  13 root root         0 Jun 26 01:31 sys
drwxrwxrwt   1 root root         6 Jul  2 09:12 tmp
drwxr-xr-x   1 root root        43 Mar  5 17:34 usr
drwxr-xr-x   1 root root        52 Mar  5 17:34 var
[root@f32a30e8fdc4 /]# cd pycharm-community-2018.1.4
[root@f32a30e8fdc4 pycharm-community-2018.1.4]# cd bin
[root@f32a30e8fdc4 bin]# ll
total 140
-rwxr-xr-x 1 root root   221 May 24  2018 format.sh
-rwxr-xr-x 1 root root 23072 May 24  2018 fsnotifier
-rwxr-xr-x 1 root root 26453 May 24  2018 fsnotifier-arm
-rwxr-xr-x 1 root root 29648 May 24  2018 fsnotifier64
-rw-r--r-- 1 root root 10915 May 24  2018 idea.properties
-rwxr-xr-x 1 root root   272 May 24  2018 inspect.sh
-rw-r--r-- 1 root root  2236 May 24  2018 log.xml
-rwxr-xr-x 1 root root   410 May 24  2018 printenv.py
-rw-r--r-- 1 root root  7074 May 24  2018 pycharm.png
-rwxr-xr-x 1 root root  6856 May 24  2018 pycharm.sh
-rw-r--r-- 1 root root   337 May 24  2018 pycharm.vmoptions
-rw-r--r-- 1 root root   329 May 24  2018 pycharm64.vmoptions
-rwxr-xr-x 1 root root   708 May 24  2018 restart.py

然而却报错了

[root@f32a30e8fdc4 bin]# ./pycharm.sh

Startup Error: Unable to detect graphics environment

解决办法:设置默认图形界面启动

[root@f32a30e8fdc4 bin]# systemctl set-default graphical.targe
Failed to set default target: No such file or directory

如果没有图形界面则需要安装界面,然后重启

yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

shutdown  -r now

[root@f32a30e8fdc4 bin]# shutdown  -r now
Failed to talk to init daemon.

这个不能关闭连接,我退出了容器,然后再进入容器时,需要先启动容器,再进入容器,否则会报错如下

[docker@localhost education]$ docker exec -it f32a30e8fdc4  /bin/bash
Error response from daemon: Container f32a30e8fdc4f25dc01db0a611d7f81d0e11dbdfc8d7e07fcfdd2835ae698736 is not running

按如下操作即可进入

[docker@localhost education]$ docker start f32a30e8fdc4 
f32a30e8fdc4
[docker@localhost education]$ docker exec -it f32a30e8fdc4  /bin/bash

然后重新安装pycharm,但是还是报没有安装图形化界面

[root@f32a30e8fdc4 bin]# ./pycharm.sh

Startup Error: Unable to detect graphics environment
[root@f32a30e8fdc4 bin]# systemctl set-default graphical.targe
Failed to set default target: No such file or directory

接着尝试下面一种方法,安装java-1.8.0-openjdk:

[root@f32a30e8fdc4:rpm -q java-1.8.0-openjdk
java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
[root@f32a30e8fdc4 bin]# yum install java-1.8.0-openjdk
Loaded plugins: fastestmirror, langpacks, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
Package 1:java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64 already installed and latest version
Nothing to do

说是已经安装了java-1.8.0-openjdk

故问题还是没有解决,仍报没有图形化界面

使用下面的方式

yum install virt-manager

还是不行。。。原来我的docker是在服务器上的,没有桌面,所以根本没有图形化界面,也没办法安装pycharm。

不,应该说我使用的centos镜像没有图像化界面。

保存容器

[docker@localhost docker_face_recognition]$ docker commit -a "limt" -m "original enviroment" f32a30e8fdc4  face_recogniton
sha256:b47d847df004d47ce56881d3b097b386323e03d64551fec2ece7f2fbeb6ee9b7

f32a30e8fdc4 为容器ID
face_recognition 为新命名的名称

[docker@localhost docker_face_recognition]$ docker save  face_recogniton-o /opt/face_recogniton.tar 
cowardly refusing to save to a terminal. Use the -o flag or redirect

保存镜像

[docker@localhost education]$ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
face_recogniton       latest              b47d847df004        7 minutes ago       8.37GB
<none>                <none>              f49a5f5d9c46        23 minutes ago      867MB
centos                latest              9f38484d220f        3 months ago        202MB
python                3.6.4               07d72c0beb99        15 months ago       689MB
singularities/spark   1.6                 165f9f3c6797        17 months ago       1.29GB
java                  8-jdk               d23bdf5b1b1b        2 years ago         643MB
[docker@localhost education]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                   NAMES
f32a30e8fdc4        centos:latest       "/bin/bash"         20 hours ago        Up 2 hours          0.0.0.0:10000->80/tcp   reverent_shockley
[docker@localhost education]$ docker save face_recognition -o /home/docker/education/face_recogniton.tar
Error response from daemon: No such image: face_recognition
[docker@localhost education]$ docker save face_recogniton -o /home/docker/education/face_recogniton.tar
[docker@localhost education]$ 

开始名字写错了,过后才发现

这样就把镜像保存好了,完成!

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值