Docker学习笔记一
一、Docker是什么
- 概述:
Docker是Linux容器封装,提供一些简单易用的容器使用接口。
Docker将应用程序与该程序的依赖,打包在一个文件里面,运行这个文件,就会生成一个虚拟容器。程序在虚拟容器中运行的时候,就好像运行在真的物理机上一样。
Docker提供版本管理、复制、分享、修改扥功能,就像管理普通代码一样管理Docker容器。
- 关于其他带环境安装的解决方案:
环境配置难题软件开发最大的麻烦就是环境配置。开发环境运行没问题,生产不能用。因为生产缺某些组件。换一台机器,就要重新配置一遍。这样太浪费时间和精力了。
虚拟机的带环境安装的解决方案。缺点:占用资源太多:虚拟机本身耗资源,比如虚拟机中的程序占用1M内存,但是虚拟机本身要几百兆内存才可以运行。冗余步骤多:虚拟机本身是完整操作系统,一些系统级别的操作步骤,无法跳过,比如:用户登录。启动慢:启动操作系统要多久,启动虚拟机就要多久。
Linux容器:针对虚拟机的缺点,Linux发展出另外的一种虚拟化技术:Linux容器。Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。即:在正常进程外面套一个保护层,对于容器里面的进程来说,它接触到的资源都是虚拟的,实现了与底层系统隔离。
Linux容器优点:启动快:容器里面的应用,是底层系统中的一个进程,启动容器相当于启动一个进程。而不是一个操作系统。占用资源少:容器只占用需要的资源,不占用哪些没有用到的资源。虚拟机是一个完整的操作系统,不可避免地要占用其他资源。体积小:容器只包含用到的组件,而虚拟机包含整个操作系统的打包。所以 容器文件比虚拟机文件要小得多。
二、Docker的用途
-
提供一次性的环境。比如:本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
-
提供弹性的云服务。因为Docker容器可以随开随关,很适合动态扩容和缩容。
-
组件微服务架构。通过多个容器,一台机器可以跑多个服务,听此可以在本机模拟出微服务架构。
三、Docker安装
- Linux安装
Docker要求CentOS版本高于 3.10。安装之前可以先查看版本内核:
//1.查看内核版本
uname -r
//2.安装必要的系统工具:
yum install -y yum-utils device-mapper-persistent-data lvm2
//3.添加软件源信息:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//4.更新yum缓存
sudo yum makecache fast
//5.安装 Docker-ce
sudo yum -y install docker-ce
//6.启动Docker后台服务:
sudo systemctl start docker
//7.测试运行 hello-world
docker run hello-world
//看到这个证明安装成功
hello from docker
- windows安装
系统是 win10专业版安装 docker from windows 即可。如果不是,需要安装docker tool box。
//1.需要修改 DOcker Quick Start ,右键点,属性,快捷方式,目标:
"D:\Program Files (x86)\Git\bin\bash.exe" --login -i "C:\Program Files\Docker Toolbox\start.sh"
//git位置
//2.修改脚本后:
DOCKER_MACHINE="C:\Program Files\Docker Toolbox\docker-machine.exe"
//这是安装路径
//3.修改start.sh中 VBOXMANAGE 的路径, 19行往下
------------------
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 文件里面,只有通过这个文件,才能生成Docker容器。
Docker根据 image文件生成容器的实例。
image文件可以继承,实际开发中,一个image文件往往通过集成另一个image文件,加上一些个性化设置而完成的。
- 列出本机所有的image文件
docker image ls
- 删除image文件
docker image rm [image文件名]
五、用docker安装redis
- 1、搜索镜像:
docker search redis
- 2、拉取镜像:
docker pull redis
- 3、启动
docker run --name myredis -p 6379:6379 -d redis redis-server
//-p 6379:6379 左边6379表示win10端口 右边表示容器中redis端口
//--name 表示 redis镜像的实例名称
//-d 后台运行
- 4、看进程
docker ps
- 5、操作redis
///进入容器
docker exec -it 2b377f9840fc bash
// 2b377f9840fc 是docker ps查看的CONTAINER ID
//启动redis-cli
redis-cli
//退出
exit
六、推荐一篇详细Docker博客
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html