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++开发环境

相关推荐
M78佐菲11 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
益达丫12 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
九皇叔叔14 小时前
Kubernetes 资源管理方式详解:命令式与声明式管理
docker·容器·k8s
chicheese15 小时前
Linux 面试速查表:从初级到高级,附高频场景答题模板
linux·运维
Linux-lucky15 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
vortex516 小时前
常用终端模拟器全面对比:Kitty、WezTerm、Ghostty 与 Konsole
linux
INGNIGHT17 小时前
270 · 电话号码的字母组合II(Trie)
linux·算法
zly350017 小时前
VMware Converter Standalone 物理机转化为虚拟机后源1硬盘变成了2个硬盘(2个硬盘文件)虚拟机无法启动。
linux·运维·服务器
GeW19 小时前
从内核到数据:Linux与工业数据库如何支撑高端制造
linux
程序猿小郑20 小时前
Docker Compose 构建完整服务实战指南:从入门到最佳实践
docker·容器