对于很多新手来说,学习一门编程语言最难的可能就是环境。劝阻了很多新人,但是随着容器化的出现,现在这个问题不存在了,因为通过容器可以分分钟搭建环境,我们需要做的就是复制配置文件,然后运行docker容器。能。docker镜像的优势以前我们都是在本地开发各种环境的应用,然后开发,最后部署到服务器上。但是由于环境不同,经常会出现各种各样的问题,调试也相当麻烦。现在我们可以创建一个预装依赖和工具(如编译器、调试器等)的docker镜像,然后在镜像容器中进行开发调试,最后直接部署构建容器。这个镜像会是开发者的本地服务器和CI/CD服务器,也就是不会出现“在我的机器上能用,但在CI上失败!”的情况。问题。由于构建在容器内运行,因此不受任何开发人员本地环境的环境变量、工具或设置的影响,这意味着环境变得隔离。任何开发人员使用的环境都是相同的。理想情况下,Docker镜像会被适当地标记一些有意义的版本名称;它将允许用户通过从注册表中提取正确的图像来在环境之间跳转。即使镜像已经从注册表中删除,因为docker镜像是从Dockerfiles构建的,我们总是可以从旧的Dockerfile重建镜像。另外,由于我们随时通过git对Dockerfile进行版本管理,所以环境的搭建总是非常容易的。Dockerfilec/c++的镜像配置非常简单,我们只需要从基础镜像ubuntu进行配置,通过apt-getinstall安装c开发环境即可。如果我们需要一些数据库文件,我们可以将它们添加到dockerfile中。当然,我们也可以通过docker-compose来安排它们,添加一个redis容器,然后将网络相互关联起来。另外,我们也可以直接通过gcc镜像来构建,不需要安装c开发环境。当然,我们可以将编译和构建命令写到Dockerfile中,这样我们就可以直接运行容器编译生成可执行文件了。以下是Dockerfile文件的具体内容。#从DockerHub获取基础Ubuntu镜像FROMubuntu:latest#在基础镜像上更新应用程序RUNapt-get-yupdate&&apt-getinstall-y#安装Clang编译器RUNapt-get-yinstallclangvim#指定工作目录WORKDIR/usr/src/dockertest1#从DockerHub获取GCC预装镜像FROMgcc:4.9#指定工作目录WORKDIR/usr/src/dockertest1dockerbuild-tmygcc:local.dockerrun-it-d-v/home/user/project:/usr/src/dockertest1mygcc:local/bin/bash安装调试工具当前镜像只有编译工具,没有调试工具。我们需要安装gdb工具来调试代码,所以需要修改Dockerfile引入gdb工具。#从DockerHub获取基础Ubuntu镜像FROMubuntu:latest#在基础镜像上更新应用程序RUNapt-get-yupdate&&apt-getinstall-y#安装Clang编译器RUNapt-get-yinstallclangvimgdb#指定工作目录WORKDIR/usr/src/dockertest1总结因为容器的出现,我们的环境搭建变得非常容易,再也不用担心环境因为某些原因被破坏了。如果容器损坏了,我们只需要重启一个新的容器即可。通过文件映射,我们可以在本地编辑文件,映射到容器中。当然我们也可以直接在容器中修改它们,但是最好加上一个映射,这样当我们的容器销毁的时候,我们的代码源文件也保存在本地。除了从官网下载镜像文件,你也可以自己定义,尤其是当你需要独特的环境时,你可以选择构建自己的本地镜像。此外,我们还可以在Dockerfile中执行命令。比如一些依赖安装可以在Dockerfile中指定运行安装。另外,构建镜像只需要第一次从网络下载,然后运行本地缓存,容器运行速度非常快,只需几秒。
