Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
容器化越来越受欢迎,因为容器是:
●灵活:即使是最复杂的应用也可以集装箱化。
●轻量级:容器利用并共享主机内核。
●可互换:可以即时部署更新和升级。
●便携式:可以在本地构建,部署到云,并在任何地方运行。
●可扩展:可以增加并自动分发容器副本。
●可堆叠:可以垂直和即时堆叠服务。
容器在内核中支持2种重要技术:
docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g,只有当需要修改时才复制一份数据)
Docker核心概念:镜像、容器、仓库
Docker 的镜像、容器、日志等内容全部都默认存储在 /var/lib/docker
docker镜像操作
docker search 镜像关键词 pull #如果不指定标签则使用:latest 做默认标签
查看下载到本地的所有镜像
docker images
删除镜像 docker rmi 仓库名称:标签 或镜像I D号
存出镜像:将镜像保存成为本地文件
docker save -o 存储文件名 存储的镜像
载入镜像:将镜像文件导入到镜像库中
docker load < 存储的文件 或 docker load -i 存出的文件
docker 容器操作
创建容器
docker create -it 镜像/bin/bash
查看容器的运行状态
docker ps -a
启动容器
docker start 容器ID/名称
容器的进入
docker exec -it 容器ID/名称 /bin/bash
复制文件到容器中
docker cp 文件 容器ID:/opt
从容器复制文件到主机
docker cp 容器ID:/opt 文件