用docker打造一个ubuntu开发环境 您所在的位置:网站首页 docker云桌面有哪些 用docker打造一个ubuntu开发环境

用docker打造一个ubuntu开发环境

2024-06-02 16:32| 来源: 网络整理| 查看: 265

1.背景

我们在做ubuntu应用开发时,手中的开发电脑搭载的操作系统一般是windows或者macos。

大多数人都会选择安装VMware或者VirtualBox。然后下载ubuntu对应发行版本的iso镜像安装一个虚拟机。

而我们开发人员只需要借助ubuntu的编译器编译自己的代码而已,安装一个完整桌面版的ubuntu虚拟机显然太耗费个人电脑的资源了。

因此,可以选择安装一个docker容器,小巧精简。下面介绍一下我在我个人MAC电脑上搭建ubuntu开发容器的过程。

2.环境搭建 2.1. 安装docker

参考文章连接:https://www.runoob.com/docker/macos-docker-install.html

这个文章中介绍的安装流程很详细。有一些需要补充一下:

(1)注册账号

安装完成docker desktop之后,会提示你登录,如果你第一次使用,很显然你是没有登录的账号和密码。

如果你拥有一个个人或公司或组织的远程镜像仓库,那就无需注册账号了。

如果你没有这样的远程仓库,并且想后期制作镜像,然后上传(push)到远程仓库方便拉取,那么你最好注册一个账号。

注册账号时,会让你选择你要注册的账号类型,一般有三个:免费、普通会员、高级会员。

免费的账户可以使用docker hub官网提供给你的1个G左右的镜像仓库空间,供你上传你自己制作的镜像。会员则会享受到更大空间的仓库和更优质的上传下载速度。

 

 

(2)换镜像源

由于docker hub镜像仓库服务器在国外,因此国内在拉取docker hub上的源时非常缓慢,需要改为国内的免费的镜像仓库源地址。

国内的源有很多,文章中的其它章节有介绍:https://www.runoob.com/docker/docker-resources.html。也可以自行百度搜索寻找其他源地址。

更换源之后拉取镜像时速度就非常快了。

连接中的文章当时使用的docker desktop版本很旧,新版本在配置镜像源的方式上有很大更改,由之前的界面操作方式改成json文件配置方式。

因此我介绍一下新版本的修改docker hub源的方式:

2.2. 准备ubuntu镜像

如果你没有属于自己的或组织的远程镜像仓库,那么你可以选择去docker hub官方网站上搜索ubuntu的镜像。

几乎所有的发行版操作系统厂商都在docker hub官方网站上放置了自己的操作系统镜像。当然一般是最小集合的。

以ubuntu1804为例:

搜索ubuntu

找到官方仓库下的1804版本

拉取指定的镜像到本地

将上图中箭头指向的命令复制,然后在本机本地执行即可下载。

可以发现镜像版本非常小合计才60MB多一些。而你用虚拟机时,需要下载的ubuntu1804发行版ISO镜像包最起码得1个G以上甚至更大。

拉取成功后,执行git image ls会显示当前本地的镜像列表。

 

2.3、制作镜像

由于我个人打算使用ubuntu1804进行 C/C++ 和python3的开发,因此需要安装基础工具。

 

2.3.1 启动镜像

执行:docker run -d -i -t --net=host --name my-ubuntu -v/Users/zhanglining:/opt/zln ubuntu:1804

注意:我这里增加一个卷映射,可以实现宿主机和docker容器之间代码文件的共享访问。方便我 开发在宿主机上进行,编译在容器中进行。

执行docker ps 查看当前运行中的容器。

执行 docker exec -it bash ,登入容器内部终端。

docker命令行工具的使用参考学习:https://www.runoob.com/docker/docker-command-manual.html

 

2.3.2 安装必要的开发组件

(1)首先修改ubuntu1804的软件源,使用ubuntu的官方源下载软件速度非常慢。

备份Ubuntu 的软件源配置文件/etc/apt/sources.list, 将该文件复制一份,改个名字作为备份

将/etc/apt/sources.list中的内容清空, 改成新的源地址,目前国内好多源,比如:清华大学、阿里云、网易等等可以自行百度搜索源地址,粘贴上去即可。

修改完成保存退出。

执行:apt update & apt upgrade

(2)安装c/c++编译器

apt-get install gcc-7 g++-7

安装libcul库

还有其他版本的libcurl,可根据自己需求安装。包含openssl 是为了支持https

apt-get install libcurl4-openssl-dev

头文件路径安装位置:/usr/include/curl

库文件路径安装位置:/usr/lib/x86_64-linux-gnu/libcurl.so.4

安装libjsoncpp库

apt-get install libjsoncpp-dev  

头文件在:/usr/include/jsoncpp/json

动态库在:/usr/lib/x86_64-linux-gnu/libjsoncpp.so.1.7.4

 

注意:能联网的情况下,可以通过apt-get命令安装大多数的软件和动态库,

如果无法联网,或者需要安装指定版本的动态库,可以自行去官网或者github下载源码手动编译安装,毕竟已经安装了gcc和g++编译器。

 

(3)安装python

安装python2:apt-get install python

安装Python3:apt-get install python3

安装pip3:apt-get install python3-pip

 

注意:python3默认安装的是3.6版本,如果希望安装其它版本,可以去下载python3的源码,解压后自己编译手动安装。

 

2.3.3 制作镜像并上传到远程仓库

安装了很多软件和动态库,但只要容器停止重启,之前安装的内容都会丢失,系统恢复为镜像初试状态。

因此,需要保存当前状态的容器为一个新的镜像。

docker commit -a 'zhanglining' -m 'install python' 04452eb82b59  zhanglining/develop-ubuntu1804:latest

注意我这里的前缀 "zhanglining/" 一定要和你dockerhub的账户名一致,否则会失败,并且提示: "denied: requested access to the resource is denied"

执行完毕docekr commit之后执行docker image ls会看到本地已经生成了个新的刚制作成功的镜像。

将此镜像上传到docker hub的远程仓库中:

docker push zhanglining/develop-ubuntu1804:latest

 

 

注意:以后开发过程中,本地镜像每次有更新(安装了新的动态库或软件)都要git commit 然后git push。

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有