多人开发必备:Docker快速入门&速查手册
共 2345字,需浏览 5分钟
·
2021-10-21 21:58
前言
针对这一开发中的痛点,虚拟容器技术就应运而生了。这项技术将所有需要的库都打包成一个大的开发环境,所有人基于这个环境进行开发,环境快速对齐。大家可以打包自己的应用到容器中,再迁移到其他机器的虚拟容器中,实现快速部署。
下文将介绍一种虚拟容器应用: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 | sh
sudo 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