多人开发必备:Docker快速入门&速查手册

机器学习算法工程师

共 2345字,需浏览 5分钟

 ·

2021-10-21 21:58

前言

通常,我们的开发环境中需要配置各种库,这会导致大家在开发过程中相互之间的配置库版本不一致,程序员A开发的程序在程序员B的环境下运行不起来,新人C不知道自己应该配置A的环境还是B的环境。


针对这一开发中的痛点,虚拟容器技术就应运而生了。这项技术将所有需要的库都打包成一个大的开发环境,所有人基于这个环境进行开发,环境快速对齐。大家可以打包自己的应用到容器中,再迁移到其他机器的虚拟容器中,实现快速部署。


下文将介绍一种虚拟容器应用:Docker,包括基本概念,常用命令和如何构建自己的Docker容器。



Docker入门介绍

Docker是虚拟容器技术的一种具体实现。打个比方,Docker就是一个软件集装箱化平台,就像船只、火车、卡车运输集装箱而不论其内部的货物一样,软件容器充当软件部署的标准单元,其中可以包含不同的代码和依赖项。按照这种方式容器化软件,开发人员和 IT 专业人员只需进行极少修改或不修改,即可将其部署到不同的环境,如果出现的故障,也可以通过镜像,快速恢复服务。


相比VM虚拟机,Docker更加灵活,占用的资源也更少,他们的区别如下图所示。

图:VM和Docker的设计架构区别


下图详细展示了Docker的主要架构和一些基础概念。我们可以看到Docker中有这样几个概念:

  • Dockerfile

  • image

  • container


实际上你可以简单的把image理解为可执行程序,container就是运行起来的进程。那么写程序需要源代码,那么“写”image就需要dockerfile,dockerfile就是image的源代码,docker就是"编译器"。


因此我们只需要在dockerfile中指定需要哪些程序、依赖什么样的配置,之后把dockerfile交给“编译器”docker进行“编译”,也就是docker build命令,生成的可执行程序就是image,之后就可以运行这个image了,这就是docker run命令,image运行起来后就是docker container。


具体的使用方法就不在这里赘述了,大家可以参考docker的官方文档,那里有详细的讲解。



Docker常用命令


Docker的安装比较方便,执行以下指令。

sudo wget -qO- https://get.docker.com | shsudo usermod -aG docker usernamexxx


这里总结了Docker使用中的常用命令,可以尝试自己在服务器上操作,注意区分image和container。


docker pull # 获取docker image
docker run -p #运行container 端口映射
docker run -v [local path]:[docker 内部目录]# 目录挂载
docker commit # 保存改动为新的image
docker build # 创建docker image
docker create #
docker attach # 进入容器(不是进入image)
docker rm [docker id] # 删除docker container
docker rmi [docker image id] # 删除docker image
docker ps # 查看正在运行的docker
docker ps -a # 查看docker运行的历史
docker images # 查看本地已有的docker镜像
docker inspect # 查看image内部具体信息
docker cp # 在host和container之间拷贝文件
docker stop # 停止container
docker search # 在远程仓库docker hub搜索镜像
docker login # 登录docker hub
docker push # 将本地镜像上传到docker hub



构建一个自己的Docker


有时候别人提供的Docker image中不完全是我们需要的开发环境,可以基于别人的image开发自己的Docker容器。


FROM # 设置基础镜像
MAINTAINER # 著名文件作者/维护者
RUN # 执行命令
COPY # 拷贝文件
ADD # 添加文件
ENTRYPOINT # 给container指定执行入口
EXPOSE # 暴露端口
CMD # 执行命令,给container指定执行入口
WORKDIR # 指定运行命令的路径
ENV # 为container里面环境的设置环境变量
USER # 指定执行container的用户
VOLUME # 指定container执行时挂在的卷



参考文献

  • 搭建一个自己想要的docker:https://zhuanlan.zhihu.com/p/346450809

  • 什么是Docker?看这一篇干货文章就够了:https://zhuanlan.zhihu.com/p/187505981

  • Docker入门教程

    https://www.imooc.com/learn/867

  • Docker 实战总结

    https://zhuanlan.zhihu.com/p/188544516

  • linux查看正在运行的容器,说说Docker 容器常用命令https://blog.csdn.net/weixin_39568597/article/details/116654367


浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报