目录
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