目录
1.Docker 简介
Docker 是基于 Go 语言的开源项目。
Docker 的目标是通过对应用的封装、分发、部署、运行等生命周期的管理,从而达到 “一次封装,到处运行”。
Docker 是解决运行环境和配置问题,方便持续集成的容器虚拟化技术。
1.1 与传统虚拟技术的差别
传统虚拟技术是虚拟出硬件后,在其上运行一个完整的操作系统,在该系统上再运行应用。
容器内的应用直接运行于宿主的内核,容器没有自己的内核,也没有进行硬件虚拟,因此容器比传统虚拟机更轻便。
每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响。
1.2 Docker 优势
轻量,秒级的启动速度
简单,易用,活跃的社区
标准的打包,部署,运行方案
镜像支持增量分发,易于部署
易于构建,适合自动化测试和持续集成
性能高,内存和 IO 的开销低
1.3 Docker 架构图
1.4 Docker 基本组成
镜像(image)
镜像是一个只读模板,可以用来创建 Docker 容器,一个镜像可以创建很多容器。
镜像和容器的关系,类似于类和对象的关系。
容器(container)
容器使用镜像创建的运行实例,Docker 用容器独立运行一个或一组应用
容器可以启动,开始,停止,删除。每个容器都是相互隔离的,保证安全的平台。
仓库(repository)
集中存放镜像文件的场所。仓库分为公开仓库和私有仓库,最大的公开仓库 Docker Hub 存放了大量的镜像供用户下载。
2.Docker 安装
目前,CentOS 仅发行版中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为 64 位,内核版本在 3.10 以上。
Docker 运行在 CentOS 6.5 或更高的版本上,要求系统为 64 位,内核版本在 2.6.32 - 431 或更高版本上。
2.1 安装步骤
安装所需软件包
\# sudo yum install -y yum-utils \\
device-mapper-persistent-data \\
lvm2
设置仓库
\# sudo yum-config-manager \\
--add-repo \\
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装最新版本的 Docker Engine-Community 和 containerd
\# sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker
\# sudo systemctl start docker
通过运行 hello-world 映像来验证是否安装成功
\# sudo docker run hello-world
2.2 Docker 镜像加速
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:
配置镜像加速器
vi /etc/docker/daemon.json
将加速器地址写入配置项
{
"registry-mirrors": \["https://xxxxx.mirror.aliyuncs.com"\]
}
加载
sudo systemctl daemon-reload
重启
sudo systemctl restart docker
3.Docker 常用命令
3.1 帮助命令
查看版本
\# docker version
描述信息
\# docker info
帮助信息
\# docker help
3.2 镜像命令
列出本地主机上的镜像
\# docker images
搜索镜像
docker search tomcat
下载镜像
docker pull tomcat
删除镜像
docker rmi tomcat
3.3 容器命令
新建并启动容器
docker run centos
列出 docker 所有正在运行的容器
docker ps
退出容器
exit 表示容器停止退出,ctrl + P + Q 表示容器不停止退出
启动容器
docker start 1478e2ab6d8f
其中,1478e2ab6d8f 表示容器 ID。
重启容器
docker restart 1478e2ab6d8f
停止容器
docker stop 1478e2ab6d8f
强制停止容器
docker kill 1478e2ab6d8f
删除已停止的容器
docker rm 1478e2ab6d8f
启动守护式容器
docker run -d centos
查看容器日志
docker logs 1478e2ab6d8f
查看容器内运行的进程
docker top 1478e2ab6d8f
查看容器内部的细节
docker inspect 1478e2ab6d8f
进入容器,启动命令终端
docker attach 1478e2ab6d8f
4.Docker 镜像
镜像是一种轻量级、可执行的软件包。用来打包软件运行环境和软件,包括代码、运行时、库、环境变量和配置文件。
Docker 镜像的基础是联合文件系统。该系统是一种分层、轻量级且高性能的文件系统,支持对文件系统的修改作为一次提交来层层叠加。
Docker 采用分层结构的目的是共享资源。
提交容器副本,使之成为一个新的镜像
docker commit -a="" -m="" 1478e2ab6d8f centos:1.12