docker部署和基本操作

容器技术已经成为应用程序封装和交付的核心技术
容器技术的核心有以下几个内核技术组成:
Cgroups(control groups) 资源管理
namespace 进程隔离
selinux 安全
docker是完整的一套容器管理系统, 提供了一组命令, 让用户更加方便直接的使用容器技术, 而不需要过多关心底层内核技术
docker的优点:
相比与传统的虚拟化技术, 更加简介高效
传统虚拟机需要给每个VM安装操作系统, docker不需要
容器使用的共享公共库和程序
docker部署和基本操作
docker的缺点:
容器的隔离性没有虚拟化强
公用linux内核, 安全性有先天缺陷
selinux难以驾驭
监控容器和容器排错是挑战

部署docker:

需要64位操作系统
至少RHEL6.5以上, 推荐RHEL7
关闭防火墙, 不是必须的
docker的软件包在光盘RHEL7_extras.iso中

[[email protected] ~]# yum -y install docker
[[email protected] ~]# systemctl restart docker
[[email protected] ~]# systemctl enable docker

使用指南
[[email protected] ~]# man docker
[[email protected] ~]# man docker search

镜像:
在docker中容器是基于镜像启动的
镜像是启动容器的核心
镜像采用分层设计
使用快照的COW技术, 确保底层数据不丢失
docker部署和基本操作

docker官方提供公共镜像的仓库:
https://hub.docker.com
[[email protected] ~]# docker search busybox //搜索镜像
[r[email protected] ~]# docker pull docker.io/busybox //下载镜像(从仓库)
[[email protected] ~]# docker push docker.io/busybox //上传镜像(到仓库)
[[email protected] ~]# docker save docker.io/busybox:latest -o busybox.tar //导出镜像(将本地镜像导出为tar文件)
[[email protected] ~]# scp busybox.tar [email protected]:/root
[[email protected] ~]# docker load -i busybox.tar //导入镜像
[[email protected] ~]# docker images //查看本地镜像
[[email protected] ~]# docker run -it docker.io/ubuntu:latest /bin/bash //启动ubuntu镜像生成一个容器
[[email protected] ~]# docker ps //查看容器信息(通过另一个终端)

镜像常用命令
docker images //查看镜像列表
docker history //查看镜像制作历史
docker inspect //查看镜像底层信息
docker pull //下载镜像
docker push //上传镜像
docker rmi //删除本地镜像
docker save //镜像另存为tar包
docker load //使用tar包导入镜像
docker search //搜索镜像
docker tag //修改镜像名称和标签

容器常用命令
docker run //运行容器
docker ps //查看正在运行的容器列表, -a 查看所有的容器列表, -aq 仅显示容器id
docker stop //关闭容器
docker start //启动容器
docker restart //重启容器
docker attach //进入容器(进入pid1的线程, 如果进入非交互式线程, ctrl+p+q可以把当前线程转入后台)
docker exec //进入容器(进入新建随机pid的线程)
docker inspect //查看容器底层信息
docker top //查看容器进程列表
docker rm //删除容器

[[email protected] ~]# docker run -it docker.io/ubuntu:latest /bin/bash //运行容器, 使用bash线程,
[email protected]:/# exit
exit
[[email protected] ~]# docker run -itd docker.io/ubuntu:latest /bin/bash //在后台运行容器
4a8e7fcee3cb245756d582f56a6530044d88ff217a9eb2664db9bdabc47d8c1b