多人开发必备:Docker快速入门&速查手册
前言
针对这一开发中的痛点,虚拟容器技术就应运而生了。这项技术将所有需要的库都打包成一个大的开发环境,所有人基于这个环境进行开发,环境快速对齐。大家可以打包自己的应用到容器中,再迁移到其他机器的虚拟容器中,实现快速部署。
下文将介绍一种虚拟容器应用: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 imagedocker run -p #运行container 端口映射docker run -v [local path]:[docker 内部目录]# 目录挂载docker commit # 保存改动为新的imagedocker build # 创建docker imagedocker create #docker attach # 进入容器(不是进入image)docker rm [docker id] # 删除docker containerdocker rmi [docker image id] # 删除docker imagedocker ps # 查看正在运行的dockerdocker ps -a # 查看docker运行的历史docker images # 查看本地已有的docker镜像docker inspect # 查看image内部具体信息docker cp # 在host和container之间拷贝文件docker stop # 停止containerdocker search # 在远程仓库docker hub搜索镜像docker login # 登录docker hubdocker 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
