目录linux
Docker是一个轻量级的虚拟化技术,其解决了软件运行环境和配置等不统一的问题。
Docker已逐渐发展成为一个可持续集成和总体发布的开放平台。
Docker的理念:docker
Securely build, share and run any application, anywhereshell
Docker是将与应用相关的全部组件和环境进行封装,只要宿主机支持Docker,就能够运行各式各样的应用,不用额外的环境和配置,以此达到了“一次构建,到处执行”的目标。json
镜像是模板,容器是根据镜像构建的一个个实例,它们的关系相似于类和对象。
仓库是一个存储、分发各种镜像的地方。centos
虚拟机在宿主机上利用硬件资源虚拟出一个个操做系统,是彻底独立的系统。
容器经过Docker Engine直接使用宿主机的内核,不彻底独立。bash
容器 | 虚拟机 | |
---|---|---|
所属 | 操做系统层虚拟化 | 硬件层虚拟化 |
占用资源 | 小 | 大 |
资源利用率 | 高 | 低 |
启动速度 | 秒级 | 分钟级 |
官方文档app
CentOS上安装Docker社区版网站
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
如下操做的环境:CentOS 7ui
systemctl start docker systemctl stop docker systemctl restart docker systemctl status docker systemctl enable docker
docker version docker info docker --help
docker images docker search 镜像名称 docker pull 镜像名称
docker rmi 镜像名称或ID docker rmi $(docker images -q)
因为镜像拉取的网站是国外的,其会遇到困难,此时可配置国内的镜像加速器操作系统
/etc/docker/daemon.json
中写下以下内容{ "registry-mirrors": [ "https://registry.docker-cn.com" ] }
systemctl daemon-reload systemctl restart docker
docker run -参数 镜像名称
docker start 容器名称或ID docker stop 容器名称或ID docker restart 容器名称或ID
docker ps -参数
docker attach 容器名称或ID #以此方式进入容器中,exit后容器也中止 docker exec -it 容器名称或ID /bin/bash #以此方式进入容器中,exit后容器不中止
docker exec 容器名称或ID CMD
docker inspect 容器名称或ID #-f "{{.层级目录}}"——详细查询 docker top 容器名称或ID docker logs 容器名称或ID #-f跟踪日志输出;-t显示时间戳;--tail+n显示末尾n条日志
docker rm 容器名称或ID docekr rm $(docker ps -q)
docker cp 宿主机文件 容器名称或ID:/目录 docker cp 容器名称或ID:/目录/文件 宿主机目录
数据卷的做用是数据持久化+数据共享(宿主机与容器,容器与容器)。
宿主机与容器:
docker run
命令添加参数 -v /宿主机绝对路径目录:/容器内目录容器与容器:
docker run
命令添加参数 --volumes-from 父容器docker commit 容器名称或ID 新的镜像名称 #-m="提交的描述信息",-a="做者"
docker save -o ***.tar 镜像名称或ID
docker load -i ***.tar