一、docker基础
Docker容器的特点:
Docker主要是为了解决应用的库依赖和隔离应用
Docker相对于虚拟机比较轻量,易管理
Doker和虚拟化区别:
doker是上层和宿主机使用同一套硬件,与宿主机使用同一个内核,仅在应用层实现了隔离。
虚拟化里面的虚拟机,CPU和内存、硬盘等都是虚拟的,并不是和宿主机使用同一套硬件。
centos7安装docer:
//安装
yum remove docker-common
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl enable docker
systemctl restart docker
docker version
docker info
//卸载
yum remove docker -y
\rm -rf /var/lib/docker/
Docker镜像的分类
基础镜像,可以去docker.io上下载,也可以在国内的Docker仓库下载
自定义镜像,可以基于基础镜像实现镜像的自定义
Docker镜像的相关命令
//查看镜像,刚安装完是空的
docker images
//搜索与centos相关的镜像
docker search centos
//下载一个centos7的镜像,速度很慢,因为在国外,不用这种方式下载
docker pull centos:7
//Docker仓库的配置/etc/docker/daemon.json,重启Docker
{
"registry-mirrors": ["http://hub-mirror.c.163.com/"]
}
//重启docker
systemctl restart docker
//使用163的源进行下载
docker pull hub-mirror.c.163.com/library/centos:7
systemctl restart docker
//再次查看,发现多了一个镜像
镜像导出备份,删除和导入
重命名:docker tag hub-mirror.c.163.com/library/centos:7 centos:7
导出镜像:docker save hub-mirror.c.163.com/library/centos:7 >/tmp/centos.tar
删除镜像:docker rmi centos:7
镜像导入:docker load < /tmp/centos7.tar
Docker容器概念:
可以使用镜像生成对应运行的容器,一个镜像可以生成多个容器
Centos7镜像生成的容器系统是Centos7,Ubuntu镜像生成的容器系统是Ubuntu的
容器说明
容器里的系统跟宿主系统是独立的
容器的删除、崩溃等不会影响到宿主系统
使用Centos7镜像启动容器
docker run -it centos:7 /bin/bash #i表示交互式,t表示打开一个Shell窗口,会进入一个全新的系统
宿主机上查看容器的相关操作
docker ps:查看运行的容器,类似ifconfig
docker ps -a:查看所有容器,类似ifconfig -a
docker inspect eafaf794e11d:查看容器详细信息
docker logs eafaf794e11d:查看容器日志
//正在运行的容器无法删除,除非是在是处于停止(exited)状态的容器
docker rm eafaf794e11d:删除容器
docker rm -f eafaf794e11d :强制删除容器
容器后台运行的特点
如果没有永久运行的程序,终端一退出容器就会马上退出。
容器永久运行的条件:需要有永久运行的程序,并且使用run -d后台启动容器。
怎么样启动一个永久运行的容器
//启动后台容器,docker log ID,就能查看到对外输出的
docker run -d centos:7 /bin/bash -c "while true;do echo zhanghe; sleep 5; done"
//查看日志
[root@doker ~]# docker logs 2e8
zhanghe
zhanghe
zhanghe
进入后台容器:docker exec -it ID /bin/bash
后台容器的停止
停止后台容器:docker stop ID 或者 docker kill ID
启动容器:docker start ID
删除容器:docker rm ID
批量删除容器:docker rm -f ID1 ID2