Mac基于Docker-ubuntu构建c/c++编译环境

ops/2024/11/14 21:55:37/

编译环境安装和使用被充分验证,如有期望补充的内容欢迎留言评论。

目录

前言

Docker desktop下载安装

修改镜像源

选择ubuntu镜像

docker容器启动

参数说明:

 宿主机与docker容器文件共享

宿主机与docker容器拷贝文件

为 Ubuntu 配置 ssh、vim、make 相关工具

安装工具(如不需要ssh登录则可不安装)

Q1:ubuntu下以root用户的密码是多少?

Q2:编译过程出现Syntax error: "(" unexpected

前言

此文章期望帮助mac用户快速搭建c/c++的编译环境,快速准备软件开发环境,欢迎关注收藏加评论。

Docker desktop下载安装

Docker Desktop: The #1 Containerization Tool for Developers | Docker

修改镜像源

如图1->2->3操作步骤。

使用命令行确认是否安装成功。

macbook@MacbookdeMacBook-Pro /opt % docker --version
Docker version 26.0.0, build 2ae903e

选择ubuntu镜像

执行Pull再执行Run进行安装。

使用命令行确认是否安装成功。

macbook@MacbookdeMacBook-Pro /opt % docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       20.04     b2c9e106c9d9   11 days ago   72.8MB

docker容器启动

执行如下命令行启动

docker run -itd -p 3316:22 ubuntu:20.04

参数说明:

  1. -i: 交互式模式开启;-t: 分配 tty 伪终端;-it 通常同时使用
  2. -d: 后台运行容器
  3. -p: 指定端口映射,3316:22 表示将宿主机器的 3316 端口映射到容器内部的 22 端口(sshd 端口)
  • 使用命令行确认镜像启动状态。

  • 进入容器终端
//启动具体某个容器
docker start <container_id_or_name> 
//启动名为my_container的容器
docker start my_container
//进入某个具体容器
docker exec -it <container_id> /bin/bash
//根据镜像创建一个新容器
docker run <image_name>
//如果my_container不存在,你需要首先使用docker run来创建它。
//例如,使用ubuntu镜像创建并启动一个名为my_container的容器:
//在这个例子中,-d标志意味着容器将在守护进程模式下运行(即在后台运行),
//而ubuntu是你想要启动的Docker镜像的名称。
docker run --name my_container -d ubuntu

此处可执行启动容器,再进入容器即可,其余命令只做介绍和理解。

docker exec 和 docker attach 都能达成我们进入终端的目的,但是使用 attach 后在终端 exit 会导致容器的停止,所以这边采用 docker exec <container-id> 的用法。

 宿主机与docker容器文件共享

  • 在宿主机执行如下命令共享文件,此处会直接新建一个容器,后续操作会在新容器中进行。
docker run -it -v /Users/macbook/{path}:/opt ubuntu:20.04 /bin/bash

宿主机与docker容器拷贝文件

将宿主机下载的gcc编译器至docker容器。

docker cp /path/to/local/file container_id:/path/in/container/

为 Ubuntu 配置 ssh、vim、make 相关工具

安装工具(如不需要ssh登录则可不安装)

进入 Ubuntu 伪终端之后,接下来我们需要安装一些工具如 ssh、vim

  • ssh 相关:openssh-client(ssh 客户端)、openssh-server(ssh 服务端)
  • vim 文字编辑工具
apt update
apt install openssh-client openssh-server vim make

具体配置ssh参考文档:

Docker: Mac 上的 Ubuntu 环境搭建_mac m芯片 通过doker安装ubuntu-CSDN博客

Q1:ubuntu下以root用户的密码是多少?

A1:以root身份登录,请使用passwd命令设置根密码。

Q2:编译过程出现Syntax error: "(" unexpected

A2:需要切换dash为bash。参考如下链接。

ubuntu修改dash为bash_ubunutu dash无法修改-CSDN博客


http://www.ppmy.cn/ops/34072.html

相关文章

Qt 绘图(学习记录)

1. QT 绘图中创建画家类 QPainter提供了高度优化的功能&#xff0c;以完成大多数绘图GUI程序所需的功能。它可以画任何东西&#xff0c;从简单的线条到复杂的形状&#xff0c;如馅饼和和弦。它还可以绘制对齐的文本和像素图。通常&#xff0c;它绘制一个“自然”坐标系&#…

【Micropython Pitaya Lite教程】烧录固件

文章目录 前言一、编译固件源码二、烧录固件总结 前言 MicroPython是一种精简的Python 3解释器&#xff0c;可以在微控制器和嵌入式系统上运行。Pitaya Lite是一款基于ESP32的微控制器开发板&#xff0c;它结合了低功耗、Wi-Fi和蓝牙功能。结合MicroPython和Pitaya Lite&#…

【Python项目】基于opencv的的【疲劳检测系统】

技术简介&#xff1a;使用Python技术、OpenCV图像处理库、MYSQL数据库等实现。 系统简介&#xff1a;用户可以通过登录系统平台实现实时的人脸照片的拍摄和上传&#xff0c;结合上传图像的内容进行后台的图像预处理和运算分析&#xff0c;用户可以通过照片分析界面查看到当前检…

WPF中DispatchHelper

在WPF应用中&#xff0c;Dispatcher 是一个非常重要的概念&#xff0c;它帮助我们在正确的线程&#xff08;通常是UI线程&#xff09;上执行代码&#xff0c;这对于需要访问或更新UI元素的任务至关重要。由于WPF应用中的UI只能从UI线程进行访问&#xff0c;因此当你在后台线程上…

Pytorch 实现 GAN 对抗网络

GAN 对抗网络 GAN&#xff08;Generative Adversarial Network&#xff09;对抗网络指的是神经网络中包括两个子网络&#xff0c;一个用于生成信息&#xff0c;一个用于验证信息。下面的例子是生成图片的对抗网络&#xff0c;一个网络用于生成图片&#xff0c;另一个网络用于验…

9.4.k8s的控制器资源(job控制器,cronjob控制器)

目录 一、job控制器 二、cronjob控制器 一、job控制器 job控制器就是一次性任务的pod控制器&#xff0c;pod完成作业后不会重启&#xff0c;其重启策略是&#xff1a;Never&#xff1b; 简单案例 启动一个pod&#xff0c;执行完成一个事件&#xff0c;然后pod关闭&#xff1b;…

Python爬取豆瓣电影Top250数据

任务 爬取豆瓣电影top250中的影片名称、影片海报、年份、地区、类型、评分、评价人数、总体评价&#xff0c;并输出到douban_top250.xlsx文件中 环境 Python 3.8 requests bs4 openpyxl 源码 # 创建一个新的Excel工作簿 workbook openpyxl.Workbook() # 获取默认的工作表…

【Docker学习】docker run的端口映射-p和-P选项

docker run的端口映射选项分为-p&#xff08;小写&#xff0c;全称--publish&#xff09;&#xff0c;-P&#xff08;大写&#xff0c;全称--publish-all&#xff09;&#xff0c;之前认为只有改变容器发布给宿主机的默认端口号才会进行-p的设置&#xff0c;而不改变默认端口号…