在mac下开发C或C++后台服务器时,由于mac没有epoll等网络库,编译时需要把代码上传到远程linux服务器,非常不方便且效率低下。使用docker在mac上搭建linux服务,可以将本地源码路径映射到linux服务中,实现在mac中编辑,在linux容器中编译运行及调试,提升开发效率。
1. 下载安装docker
docker的下载地址为:https://download.docker.com/mac/stable/Docker.dmg,和其他macOS软件一样,安装非常简单,双击下载的 .dmg 文件,然后将图标拖拽到Application 文件夹即可
安装完成后,从应用中找到 Docker 图标并点击运行即可启动docker。
打开终端,执行docker命令:
2. 使用docker运行linux
使用docker运行centos linux的命令如下:
docker run -it -v ~/Documents/docker/:/datas centos
-v命令参数是把macOS本地路径映射到linux环境中,格式是:-v <macOS本地路径>:<linux路径>
-it 命令参数是以交互的方式运行centos,并启动一个伪输入终端,可以在这个伪输入终端中输入并执行linux命令:
3. 在linux中安装软件
由于centos镜像是比较纯净的linux系统,仅仅包含了常用的linux命令,如果需要拿来开发,需要安装各种软件,可以使用centos的包安装工具yum来安装各种软件。安装前可以使用yum list命令查找软件包,比如查找gcc安装包的命令如下:
yum list|grep gcc
然后使用gcc install命令安装gcc:
gcc install gcc.x86_64
如果需要安装g++支持c++开发的话,执行命令:
gcc install gcc-c++.x86_64
4. 创建镜像备份
在docker容器中安装的软件,退出后,再启动会消失,回到容器初始化状态。可以在退出容器前,创建一个镜像备份。
首先使用docker ps命令,查找容器ID (CONTAINER ID)
然后使用docker commit创建一个备份,假设备份镜像名为mcentos,则创建备份的命令如下:
docker commit -a "<提交人名>" -m "<提交信息>" e42d7f4f45b7 mcentos
创建备份后,可以使用docker images命令查找本地镜像:
退出centos镜像,启动镜像mcentos:
docker run -it -v ~/Documents/docker/:/datas mcentos
之前安装的软件都还在。
5. 删除本地镜像
使用docker rmi -f <image id>可以删除本地镜像,image id可以通过docker images命令查看,如上图。