快速了解下docker。废话少说,开干!
一、相关概念
什么是虚拟化技术?
维基百科中的解释是这样的:
虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。
对于一台计算机,我们可以简单的划分为三层:从下到上依次是物理硬件层,操作系统层、应用程序层
二、docker概念
1. Docker是世界领先的软件容器平台。
2. Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker最初实现是基于LXC。
docker的主要三个概念
镜像: 可以理解为模板; 虚拟机安装系统,镜像就是系统的安装文件模板 ghost/iso文件 ; docker的镜像就是用来生成容器的模板。
仓库: 存储管理镜像的仓库; docker hub; 类似于maven仓库;我们可以把构建后的镜像上传到服务器,从而可以在任何地方使用到这个镜像。
容器: 通过镜像模板生成的一个具体实例, 可以对容器进行管理;删除/创建/启动/停止/重启/暂停/ ; 也可以将修改后的容器生成一个镜像.
三、环境搭建
3.1 离线搭建docker
1. 下载离线包 https://download.docker.com/linux/static/stable/x86_64/ 2. 解压 tar -zxvf *.tar.gz 3. 移动目录位置 cp docker/* /usr/bin/
4. 新建 docker.service 文件放在 /etc/systemd/system/目录下,文件内容如下:
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target
5. 检查安装情况 docker -v docker version
启动docker
systemctl start docker
查看docker信息 docker info
四、快速部署一个nginx应用
4.1 搜索镜像列表
docker search nginx
4.2 拉取镜像列表到本地
docker pull nginx
4.3 查看本地镜像
docker images
4.4 通过镜像创建容器
docker create --name=test_nginx -p 19398:80 nginx
4.5 查看状态
docker ps -a
4.6 启动容器
docker start|stop|restart|pause|unpause {containerId}
4.7 修改容器内容
docker exec -ti containerId /bin/bash
4.8 保存修改后的容器内容
docker commit containerId imageName
五、命令总结
5.1 镜像命令
docker rmi xx 删除镜像
5.2 容器命令