docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,容器之间完全隔离。简言之,就是可以在Linux上镜像使用的这么一个容器。
docker与vm虚拟机
相信很多人都使用或了解过虚拟机,就是在系统安装一个软件,通过软件安装系统模拟更多的子系统出来,里面都可以装软件,登qq,每个子系统之间都是相互隔离的.
虚拟机虽然可以隔离出来很多子系统,但是每个子系统所占用的资源是很大的,每次启动消耗时间长,并且有的虚拟机软件可能是收费的。
相对于虚拟的笨重,docker则显得更轻量化,不会占用系统很多资源,启动消耗时间小,且维护成本低。
docker是使用当下很火的Go语言进行开发的,其技术核心是Linux内核的Cgroup,Namespace和AUFS类的Union FS等技术。Docker通过这些底层的Linux技术,对Linux进程进行封装隔离,而被隔离的进程也被称为容器,完全独立于宿主机的进程。
image.pngdocker基本概念
docker三大核心概念分为:
-
镜像(images)一个特殊的文件系统
操作系统分为内核和用户空间,对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而docker镜像,就相当于是一个root文件系统 -
容器(container) 镜像运行的实体
镜像和容器的关系属于一对多关系,一个镜像下可以运行多个容器,镜像是静态只读的,容器是可以被创建,启动,停用,删除等操作 -
仓库(Repository) 存放镜像文件的仓库
也叫docker仓库, 分为共有库和私有库俩种,上传下载images是通过dcoker仓库来实现的,公有库叫docker hub,也可以在局域网部署一个私有的docker仓库
docker安装
- 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装 Docker-CE
sudo yum install docker-ce
4.启动docker并设置开机自启
# 开机自启
sudo systemctl enable docker
# 启动docker服务
sudo systemctl start docker
docker常用命令
#查看镜像
docker images
#拉取镜像
docker pull
#构建镜像
docker build -t <iamge name> <目录>
示例:docker build -t demo . # .当前目录
#删除容器
docker rm <容器名 or ID>
#查看容器日志
docker logs -f <容器名 or ID>
#查看正在运行容器
docker ps
docker ps -a # 为查看所有的容器,包括已经停止的。
#删除容器
docker rm $(docker ps -a -q)
#停止、启动、杀死、删除指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
docker rm <容器名 or ID> # 删除指定容器
#后台运行容器
docker run -d <Other Parameters>
示例:docker run -d -p 127.0.0.1:8080:80 hello-world
# -d 后台运行
# -p 暴露端口 <暴露端口>:<容器端口> 8080:80 映射本地端口8080到容器80端口
网友评论