部署
-
什么是部署
一般,软件从研发到用户使用包括开发和部署两个环节,其中,部署就是让写的程序或者开发的产品在某一个环境下跑起来。按环境的不同,可以分为远程部署和本地部署。
解决问题:为什么在我的电脑上跑得起来,放另一台电脑就不行? - 怎么去部署
从源代码生成软件包 —–> 软件包放到某一环境 —–> 配置目标环境使得软件运行。
(啊,乍一看,好像废话)
Docker:Build once,Run anywhere
- 简单/通俗:如何通俗解释Docker是什么? – 周宇刚的回答 – 知乎
- 生动/形象:如何通俗解释Docker是什么? – 小枣君的回答 – 知乎
- Docker包括镜像、容器和仓库三个重要的概念,以C++的角度,镜像可以看作类,容器是对象,仓库就是库。Docker是管理这些内容的工具。
镜像(Image)
Docker镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。但没有动态的数据,是只读的。
容器(Container)
Docker容器与镜像几乎一样,但是可读写的。
仓库(Repository)
Docker Registry(仓库注册服务器)负责存储和分发镜像,每个Registry可以有多个Repository,每个Repository可以包含多个标签(Tag),每个标签对应着一个镜像。 - 虚拟机与Docker:Docker的容器技术更为轻量化。
虚拟机 | Docker | |
---|---|---|
隔离级别 | 操作系统级 | 进程级 |
启动时间 | 分钟级 | 秒级 |
镜像存储 | GB~TB | KB~MB |
集群规模 | 上百 | 上万 |
-
Docker的拉取、运行、退出
sudo docker login xxxxx # 登陆 sudo docker pull yyyyy:tag # 拉取 sudo docker run -ti yyyyy # 运行 ## -t tty ## -i interactive ## --net Connect a container to a network ## --ipc IPC mode to use ## --device Add a host device to the container ## --privileged Give extended privileges to this container ## -v Bind mount a volume 映射共享路径 exit # 退出
- 本地docker提交保存
docker运行后的容器内,安装了一些包,在之后启动时,为避免重复安装的过程,可以保存提交容器是,生成一个新的镜像的标签,下次启动时,选择对应标签启动 查看容器ID docker ps 查看仓库名 docker images 提交镜像保存 docker commit 容器ID 仓库名:新标签