2013年发布
一、环境配置难题
开发环境运行没有问题,生产不能用,因为生产缺乏某些组件。
换一台机器,需要重新配置一遍。
能不能从根本上解决问题:安装的时候,把原始环境,一模一样地安装一遍。
二、虚拟机
带环境安装的一种解决方案。
缺点:
占用资源多:虚拟机本身需要消耗资源,程序1M,环境几百MB。
冗余步骤多:虚拟机是完整的操作系统,一些系统级别的操作步骤,无法跳过,比如用户登录。
启动慢:启动操作系统要多久,启动虚拟机就要多久。
三、Linux容器
针对虚拟机的缺点,Linux发展出另外的一种虚拟化技术:Linux容器。
Linux容器不是模拟完整的操作系统,而是对进程进行隔离。
即在正常进程的外面,套一个保护层,对于容器里面的进程来说,它接触到的资源都是虚拟的,实现与底层系统的隔离。
优点:
启动快:容器里面的应用,直接就是底层系统中的一个进程,启动容器相当于启动本机的进程。而不是启动操作系统。
占用资源少:容器只占用需要的资源,不占用没有用到的资源。
体积小:只包含用到的组件,而虚拟机包含了整个操作系统。所以容器文件比虚拟机文件小的多。
四、Docker是什么?
Docker属于Linux容器的一种封装,提供了简单易用的容器使用接口。
Docker将应用程序与该程序的依赖,打包到一个文件里面,运行这个文件,就会产生一个虚拟容器。
程序在虚拟容器中运行,就好像运行在真正的物理机上一样。
Docker提供版本管理、复制、分享、修改等功能,就像管理普通代码一样管理Docker容器。
五、Docker的用途:
Docker的主要用途,目前有三大类。
1、提供一次性的环境:本地测试他人的软件程序。
2、提供弹性的云服务。Docker容器可以随开随关,很适合动态的扩容和缩容。
3、组建微服务架构。通过多个容器,一台机器可以跑多个服务,在本机就可以模拟出微服务架构。
六、Docker安装
1、Linux安装
Docker要求CentOS内核版本高于3.10
uname -r 查看内核版本
安装必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:
yum makecache fast
安装 Docker-ce:
yum -y install docker-ce
启动 Docker 后台服务
systemctl start docker
测试运行 hello-world
docker run hello-world
看到hello from docker证明安装成功。
2、windows安装
win10专业版,直接安装 docker for windows 即可。
win10普通版、win7 win8 ,需要安装 docker tool box
toolbox 配置:
右键 Docker Quickstart Terminal
"D:\Program Files (x86)\Git\bin\bash.exe" --login -i "C:\Program Files\Docker Toolbox\start.sh"
把这个位置配成你本机的git位置 修改后面这个脚本
DOCKER_MACHINE="C:\Program Files\Docker Toolbox\docker-machine.exe"
STEP="Looking for vboxmanage.exe"
VBOXMANAGE="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
#if [ ! -z "$VBOX_MSI_INSTALL_PATH" ]; then
# VBOXMANAGE="${VBOX_MSI_INSTALL_PATH}VBoxManage.exe"
#else
# VBOXMANAGE="${VBOX_INSTALL_PATH}VBoxManage.exe"
#fi
七、image文件
Docker把应用程序及其依赖,打包在image文件里面,只有通过image文件,才能生成docker容器。
Docker可以根据image文件生成容器实例。
image文件可以继承。在实际开发中,一个image文件往往通过继承另一个image文件,加上一些个性化的设置而生成。
启动容器
docker run hello-world
列出所有image文件
docker image ls
删除image文件
docker image rm image文件名
八、安装redis
1、搜索镜像:
docker search redis
2、拉取镜像
docker pull redis
3、启动redis
docker run --name myredis -p 6379:6379 -d redis redis-server
-d表示后台运行
-p表示端口号,左边的6379表示win10系统端口考,右边表示容器中redis端口号
--name表示运行redis镜像的实例名称