Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
容器技术的核心有以下几个内核技术组成:
CGroups(Control Groups)-资源管理NameSpace-进程隔离
SELinux安全
容器技术的优势:
传统虚拟机需要给每个VM安装操作系统容器使用的共享公共库和程序
启动非常快速
劣势:
容器的隔离性没有虚拟化强
共用Linux内核,安全性有先天缺陷SELinux难以驾驭
监控容器和容器排错是挑战
docker 安装
把软件 docker-engine docker-engine-selinux 拷贝到私有yum仓库,运行 createrepo .
安装 docker
yum clean all
yum install -y docker-engine docker-engine-selinux
设置开机启动,启动 docker 服务
systemctl enable docker
systemctl start docker
镜像相关命令
查看系统镜像
docker images
从官方源搜索镜像
docker search busybox
下载镜像
docker pull busybox
上传镜像
docker push busybox
把本机镜像备份为 tar 包
docker save busybox >busybox.tar
把备份的tar包导入到本机镜像
docker load <busybox.tar
查看容器
docker ps
创建一个 bash 交互的容器
docker run -it centos /bin/bash
创建一个非交互的容器
docker run nginx
docker run -itd centos /bin/bash
查看镜像列表
docker images
查看镜像制作历史
docker history busybox
查看镜像底层信息
docker inspect busybox
下载镜像
docker pull busybox
上传镜像
docker push
删除本地镜像
docker rmi busybox
镜像另存为tar包
docker save busybox >busybox.tar
使用tar包导入镜像
docker load <busybox.tar
搜索镜像
docker search busybox
修改镜像名称和标签
docker tag busybox:latest busybox:v1
容器相关命令
以交互模式启动一个容器
docker run -it centos bash
启动的容器放在后台
docker run -itd centos bash
显示正在运行的容器
docker ps
显示所有容器
docker ps -a
显示所有容器,单只显示 id
docker ps -aq
启动,停止,重启容器
docker start|stop|restart 容器id
进入容器
docker exec -it 容器id /bin/bash
连接容器 console,exit 退出会导致容器关闭,可以使用 CTRL +(p,q) 退出
docker attach 容器id
显示容器详细信息
docker inspect 容器id
查看容器内运行的进程
docker top 容器id
删除容器
docker rm 容器id
关闭所有容器
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)