ubuntu中使用docker

上一篇我已经下载了一个ubuntu:20.04的镜像;

  1. 查看所有镜像
bash 复制代码
sudo docker images
  1. 基于本地存在的ubuntu:20.04镜像创建一个容器,容器的名为cppubuntu-1。创建的时候就会启动容器。
bash 复制代码
sudo docker run -itd --name cppubuntu-1 ubuntu:20.04

结果出现长串的容器ID号,说明创建容器cppubuntu-1成功

  1. 查看docker中有哪些容器
bash 复制代码
sudo docker ps -a
  1. 停止运行容器。
bash 复制代码
sudo docker stop 2ffec3839753
  1. 启动容器
bash 复制代码
sudo docker start 2ffec3839753
  1. 通过容器ID号删除容器(注意只有停止运行的容器才能删除)
bash 复制代码
sudo docker rm 容器的ID号
  1. 通过容器ID号进入容器内部
bash 复制代码
sudo docker exec -it 2ffec3839753 /bin/bash
  1. 查看容器当前大小
bash 复制代码
sudo docker ps -s
  1. 将宿主机上的文件拷贝到容器内部
bash 复制代码
sudo docker cp /home/lmz/workspace/opencv4_10_0_tools/opencv-4.10.0.zip 2ffec3839753:/home/lmz/tools
bash 复制代码
sudo docker cp ./cmake-3.31.6.tar.gz 2ffec3839753:/home/lmz/tools

搭建c++开发环境

  1. 安装gcc/g++
bash 复制代码
apt-get install build-essential

9.1 查看编译器版本

bash 复制代码
gcc --version
g++ --version
make --version

10 指定版本安装CMake

10.1 安装ssl库

bash 复制代码
sudo apt-get install libssl-dev

10.2 解压安装包

bash 复制代码
tar -zxvf cmake-3.31.6.tar.gz && cd cmake-3.31.6

10.3 查看配置文件

bash 复制代码
./bootstrap --help

10.4 配置(将cmake安装到指定的位置)

bash 复制代码
./bootstrap --prefix=/usr/local/cmake

10.5 编译cmake源文件(指定8个线程编译源文件)

bash 复制代码
make -j8

10.6 安装cmake

bash 复制代码
make install

10.7 将cmake的安装路径添加环境变量

打开 【vim /etc/profile】文件,在文件末尾输入一下内容:

bash 复制代码
# cmake env path 
export PATH=/usr/local/cmake/bin:$PATH

10.8 刷新环境变量

bash 复制代码
source /etc/profile

10.9 验证是否安装成功

切换到任意目录下执行如下命令,验证安装是否成功

bash 复制代码
cmake --version

安装成功的样子:

10.10 删除cmake的源码目录和源码压缩包(不影响已经安装好的cmake) ,免得占总docker容器空间。

bash 复制代码
rm -fr ./cmake-3.31.6
rm -rf ./cmake-3.31.6.tar.gz

注意,如果你和我一样,虚拟机上的宿主机是ubuntu20.04。

在宿主机上安装docker。docker容器cppubuntu-1以ubuntu:20.04镜像文件创建的,并且在容器内部搭建开发环境,那么你关机虚拟机之后,容器会停止。cmake环境会找不到。
再次开机进入到容器后,需要重新刷新环境变量

bash 复制代码
source /etc/profile

可以不指定cmake的安装目录,会不需要这一步吧

**********************************************************************************************************

安装opencv--c++开发环境

相关推荐
Yana.nice6 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
DFT计算杂谈10 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
Zhang~Ling11 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind11 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森11 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
XMAIPC_Robot12 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
重生的黑客13 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
风曦Kisaki14 小时前
#企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
阿里云·docker·容器
骑上单车去旅行14 小时前
MD5校验对比脚本
linux·服务器·windows
平生幻14 小时前
Linux 常用命令
linux