- Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
docker只打包项目代码和依赖关系,共享宿主机内核。
Docker应用场景
- 应用程序打包和发布
- 应用程序隔离
- 持续集成
- 持续集成
- 部署微服务
- 快速搭建测试环境
- 提供PaaS产品(平台即服务)
Centos安装Docker
- 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加Docker软件包源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装Docker CE
yum install -y docker-ce
- 启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker
查看docker信息:docker info
搜索镜像:docker search 关键字
镜像
一、镜像是什么
- 一个分层存储的文件
- 一个软件的环境
- 一个镜像可以创建N个容器
- 一种标准化的交付
- 一个不包含Linux内核而又精简的Linux操作系统
镜像不是一个单一的文件,而是有多层构成。我们可以通过docker history<ID/NAME>查看镜像中各层内容及大小,每层对应着Dockerfile中的指令。Docker镜像默认存储在/var/lib/docker/<storage-driver>中。
二、镜像从哪里来?
Docker Hub 是由Docker公司负责维护的公共注册中心,包含大量的容器镜像。Docker工具默认从这个公共镜像库中下载镜像。https://hub.docker.com/explore
三、配置镜像加速器:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
四、镜像与容器的联系:
容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时,会先从镜像里要写的文件复制到容器自己的文件系统中(读写层)。
如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。但并不会修改镜像的源文件。
若想持久化这些改动,可以通过docker commit将容器保存在一个新镜像中。(不推荐)
五、管理镜像常用命令
容器
一、创建容器常用选项
docker 运行镜像 docker run -it -d -p 5001:8080 -v /opt/images:/mnt --name my-project "镜像名称"
docker 进入容器 docker exec -it "容器名称" bash 也可以 docker attach 5c070c2551a9
二、容器资源限制
主要是对内存和CPU的限制
三、容器管理常用命令
数据挂载
一、Volume
二、Bind Mount
三、二者比较
网络模式
一、Docker的四种网络模式
创建一个容器,会在宿主机上创建一个veth(ipconfig)