Docker: 小白之路九(从0搭建自己的Docker环境centos7)

news/2025/2/19 8:04:54/

Docker环境配置centos7版本

一. 配置对应的docker环境和nvidia-docker(注意加速镜像设置)

二. 环境配置

1. 拉取对应的镜像

docker pull nvidia/cuda:10.2-cudnn7-devel-centos7

2. 创建新版本的容器并搭建对应的环境

docker run -it --name felaim_sever_centos7 nvidia/cuda:10.2-cudnn7-devel-centos7 /bin/bash

1. 更新对应的源和软件

yum  update
yum upgrade

2. 安装wget

yum -y install wget

3. 确定g++和gcc版本

最好是用5.4.0版本的,4.8.5对有些软件安装会有问题例如OpenCV4.2的GPU版本

gcc --version
a. 安装解压缩包bzip2
yum install bzip2
b. 下载对应源码并解压(网容易不好,要多试几次才行)
cd /usr/local/src
wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2
tar -jxvf gcc-5.4.0.tar.bz2
c.下载相关依赖组件(网不好,用热点会好一些)
cd gcc-5.4.0
./contrib/download_prerequisites
d. 建立一个文件夹存放编译的文件
mkdir gcc-build-5.4.0
cd gcc-build-5.4.0
/usr/local/src/gcc-5.4.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib  
e. 编译并安装

出现问题,没有安装make

make -j4 //开四个线程进行编译
bash: make: command not found

解决方法

yum -y install gcc automake autoconf libtool make

安装

make install

更新软链接

cd /usr/bin/
mv gcc gcc_back
mv g++ g++_back
ln -s /usr/local/bin/gcc gcc
ln -s /usr/local/bin/g++ g++
f. 推送对应的镜像到仓库
将容器变成镜像
docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1

OPTIONS说明:

  • -a :提交的镜像作者;

  • -c :使用Dockerfile指令来创建镜像;

  • -m :提交时的说明文字;

  • -p :在commit时,将容器暂停。

将镜像推入仓库

重新定义tag的名字

#docker  tag  镜像id       要推入仓库的用户名/要推入的仓库名:新定义的tag 
docker tag e12a9ec48ab7    felaim/felaim_sever:myproject
#docker push  要推入仓库的用户名/要推入的仓库名:镜像标签
docker push  felaim/felaim_sever:myproject

安装gdb

wget ftp.gnu.org/gnu/gdb/gdb-7.8.tar.gz
tar -xzvf gdb-7.8.tar.gz
cd gdb-7.8
./configure
make 

出现错误

configure: WARNING: no enhanced curses library found; disabling TUI
checking for library containing tgetent... no
configure: error: no termcap library found
make[1]: *** [configure-gdb] Error 1
make[1]: Leaving directory `/usr/local/src/gdb-7.8'
make: *** [all] Error 2
yum -y install ncurses-devel

重新configu后,make,make install

安装cmake

For example, if you simply want to build and install CMake from source,
you can build directly in the source tree::$ ./bootstrap && make && sudo make install

报错

gmake: `cmake' is up to date.
/usr/local/src/cmake-3.15.7/Bootstrap.cmk/cmake: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/src/cmake-3.15.7/Bootstrap.cmk/cmake)
/usr/local/src/cmake-3.15.7/Bootstrap.cmk/cmake: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/src/cmake-3.15.7/Bootstrap.cmk/cmake)

解决方法

cp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/
cd /usr/lib64/
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6   

问题解决后运行gmake

gmake
make install
cmake -version

安装locate

bash: locate: command not found
yum install mlocate

出现问题

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
updatedb

安装protobuf (2020.4.20)

安装tf1.14对应的protobuf需要3.7.1版本的,所以先提前安装好,这样OpenCV链接之间链接3.7.1版本的即可
下载对应版本的protobuf(git clone怎么选择tag和version)

使用–branch指定分支,也得多试几次,开手机热点比较快

git clone --branch v3.7.1 https://github.com/protocolbuffers/protobuf.gitcd protobuf//配置脚本
./autogen.sh//编译与安装
./configuremake
make check
sudo make install
sudo ldconfig # refresh shared library cache.
protoc --version

出现warning(暂未解决)

=== configuring in third_party/googletest (/home/software/protobuf/third_party/googletest)
configure: WARNING: no configuration information is in third_party/googletest

安装eigen

下载对应安装包

mkdir build
cd build
cmake ..
make install

安装bazel

yum install unzip
./bazel-0.24.1-installer-linux-x86_64.sh --user
export PATH="$PATH:$HOME/bin"

TensorRT

下载对应版本, TensorRT-6.0.1.8.CentOS-7.6.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz

tar -zxvf TensorRT-6.0.1.8.CentOS-7.6.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<TensorRT-${version}/lib>

tensorflow1.14

./configure中path的设置
/usr/local/cuda,/usr/local/cuda/bin,/usr/local/cuda/lib64,/usr/local/cuda/include,/home/software/TensorRT-6.0.1.8,/usr/lib/x86_64-linux-gnu,/usr/include,/usr/lib64
patch command is not found, please install it and referenced by '//third_party/eigen3:eigen3'
yum -y install  patch
ERROR: /root/.cache/bazel/_bazel_root/79617ab99e45fd3cf89b3b67f497350d/external/nccl_archive/BUILD.bazel:67:1: fatbinary external/nccl_archive/device_dlink_hdrs.fatbin failed (Exit 1)
fatbinary fatal   : Unknown option '-bin2c-path'
Target //tensorflow:libtensorflow_cc.so failed to build
Use --verbose_failures to see the command lines of failed build steps.

3. 安装OpenCV 4.2版本

安装OpenCV4.2版本,安装对应依赖项

sudo yum -y install epel-release
sudo yum -y install qt5-qtbase-devel gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel libjpeg-turbo-devel freeglut-devel mesa-libGL mesa-libGL-devel libtiff-devel libdc1394-devel tbb-devel eigen3-devel boost boost-thread boost-devel libv4l-devel gstreamer-plugins-base-devel
mkdir /home/software/
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cp -r ./opencv_contrib ./opencv/
cd opencv
mkdir build
cd build
cmake   -D CMAKE_BUILD_TYPE=RELEASE   -D CMAKE_INSTALL_PREFIX=/usr/local   -D WITH_TBB=ON   -D WITH_V4L=ON   -D WITH_QT=ON   -D WITH_OPENGL=ON   -D WITH_CUDA=ON   -D ENABLE_FAST_MATH=1   -D CUDA_FAST_MATH=1   -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES"   -D WITH_CUBLAS=1 -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ ..

参考地址

gcc, g++升级:

  • https://blog.csdn.net/u011181989/article/details/91334478
  • https://www.vpser.net/manage/centos-6-upgrade-gcc.html

http://www.ppmy.cn/news/2265.html

相关文章

[python] 基于wordcloud库绘制词云图

词云Wordcloud是文本数据的一种可视化表示方式。它通过设置不同的字体大小或颜色来表现每个术语的重要性。词云在社交媒体中被广泛使用&#xff0c;因为它能够让读者快速感知最突出的术语。然而&#xff0c;词云的输出结果没有统一的标准&#xff0c;也缺乏逻辑性。对于词频相差…

MySQL经典案例50题

数据准备 建表、插入数据 -- 学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name VARCHAR(20) NOT NULL DEFAULT, s_birth VARCHAR(20) NOT NULL DEFAULT, s_sex VARCHAR(10) NOT NULL DEFAULT, PRIMARY KEY(s_id) ); -- 课程表 CREATE TABLE Course( c_id VARCHAR(20),…

前端Gitee + Jenkins自动化实战(转)

# 前端Gitee Jenkins自动化实战 当我们熟悉了Jenkins 的使用后&#xff0c;接下来我们来配置一个基于 vue-element-admin 的实战项目&#xff0c;来感受一下自动化流程带给我们的优势。 首先我们需要创建一个 git 项目&#xff0c;至于代码仓库可以自选&#xff0c;这里为了…

《自己动手写CPU》学习记录(1)——第1章

引言 此专栏的文章记录自己学习《自己动手写CPU》的过程。算是一个学习笔记&#xff0c;里面也会夹杂个人的思考以及代码编写。希望自己可以像作者一样&#xff0c;坚持到最后。加油~~ 本篇学习MIPS32处理器的基本架构。 致谢 感谢书籍《自己动手写CPU》及其作者雷思磊。一…

Unity 符号表

目录 前言 关于Unity符号表 正文 程序crash日志&#xff1a; 解析 后记 记一次 Bugly 崩溃查找过程 unity-il2cpp&#xff1a; 前言 关于Unity符号表 关于项目真机调试时的崩溃问题&#xff0c;一般可以 logcat 或 xcode 看到相关的crash日志&#xff0c;拿到崩溃时的堆…

HTML期末作业——基于html实现娱乐音乐资讯发布平台HTML模板(22页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【小游戏】Unity游戏愤怒的足球(小鸟)

目录 1.弹弓逻辑 2.鸟的逻辑 3.GameManager主逻辑 文末有源工程地址 难度系数: ★★★★☆ 游戏玩法: 愤怒的足球,其实就是经典的愤怒的小鸟换图 项目简介: 功能完善,主要代码逻辑完整 本文内容: 记录一下这个工程,对内部代码逻辑没有深入了解有待以后发掘 1.弹弓逻…

web安全之通过sqlmap工具进行靶场练习

目录 基础语法 get类型的注入 post类型的注入 基础语法 -u:用于get提交方式&#xff0c;后面跟注入的url网址 --dbs&#xff1a;获取所有数据库 --tables&#xff1a;获取所有数据表 --columns&#xff1a;获取所有字段 --dump&#xff1a;打印数据 -D&#xff1a;查询选择某…