奇怪的知识又增加了2——软件部署 & Docker
-
-
- 部署
- Docker:Build once,Run anywhere
-
部署
-
什么是部署
一般,软件从研发到用户使用包括开发和部署两个环节,其中,部署就是让写的程序或者开发的产品在某一个环境下跑起来。按环境的不同,可以分为远程部署和本地部署。
解决问题:为什么在我的电脑上跑得起来,放另一台电脑就不行?
-
怎么去部署
从源代码生成软件包 -----> 软件包放到某一环境 -----> 配置目标环境使得软件运行。
(啊,乍一看,好像废话)
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 # 退出