docker官网:http://www.docker.com
docker hub官网:https://hub.docker.com
安装docker前提条件:
目前,CentOS仅发行版本中的内核支持Docker,Docker运行在CentOS7上
要求系统为64位,Linux系统内核版本为3.8以上
查看自己的内核:cat /etc/redhat-release
docker三要素:镜像(image)、容器(container)、仓库(repository)
镜像:Docker镜像(Image)就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。它也相当于是一个root文件系统。docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。
容器:Docker利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。
仓库:仓库(Repository)是集中存放镜像文件的场所。类似于Maven仓库,存放各种jar包的地方;github仓库,存放各种git项目的地方;Docker公司提供的官方registry被称为DockerHub,存放各种镜像模板的地方。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是DockerHub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。
docker整体架构及底层通信原理简述:
docker安装:
官方安装地址:https://docs.docker.com/engine/install/centos
步骤一:yum安装gcc配置
yum -y install gcc
yum -y install gcc-c++
步骤二:安装需要的软件包
yum install -y yum-utils
步骤三:设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
步骤四:更新yum软件包索引:
yum makecache fast
步骤五:安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
步骤五:启动Docker
systemctl start docker
步骤六:测试docker安装成功
docker version
步骤七:docker卸载
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
阿里云镜像加速器:
是什么:https://promotion.aliyun.com/ntms/act/kubernetes.html
注册阿里云账号,登录,找到容器镜像服务
选择镜像加速器:
就按照实例在docker服务器中执行命令即可:
1、mkdir -p /etc/docker
2、
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://gcn2yqoj.mirror.aliyuncs.com"]
}
EOF
3、systemctl daemon-reload
4、systemctl restart docker
docker常用命令:
帮助启动类命令:
- 启动docker:systemctl start docker
- 停止docker:systemctl stop docker
- 重启docker:systemctl restart docker
- 查看docker状态:systemctl status docker
- 开机启动:systemctl enable docker
- 查看docker概要信息:docker info
- 查看docker总体帮助文档:docker --help
镜像命令:
- docker images 列出本地主机上的镜像
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签版本号
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
- docker images -a 列出本地所有的镜像
- docker images -q 只显示镜像id
- docker search 某个XXX镜像名字
- docker pull 镜像名字:版本号
- docker pull 镜像名字,不写版本号就是最新版
- docker system df 查看镜像/容器/数据卷所占的空间
- docker rmi 镜像id/镜像名 删除某个镜像
- docker rmi -f 镜像id/镜像名 强制删除某个镜像
- docker rmi -f 镜像名1:TAG 镜像名2:TAG 强制删除多个镜像
- docker rmi -f $(docker images -qa) 删除全部镜像
容器命令:
- docker run [options] image [command] 运行一个容器
options说明:
- docker ps 列出docker所有正在运行的容器
- docker ps -a 列出当前所有正在运行的容器+历史上运行过的
- docker ps -l 显示最近创建的容器
- docker ps -n 显示最近n个创建的容器
- docker ps -q 静默模式,只显示容器编号
- docker restart 容器id/容器名字 重启容器
- docker start 容器id/容器名字 启动已停止运行的容器
- docker stop 容器id/容器名字 停止容器
- docker kill 容器id/容器名字 强制停止容器
- docker rm 容器id 删除已停止的容器
- docker rm -f $(docker ps -a -q) 一次性删除多个容器
- docker logs 容器id 查看某个容器的日志
- docker top 容器id 查看容器内运行的进程
- docker inspect 容器id 查看容器内部细节
退出容器命令:
- exit:run进去容器,exit退出,容器停止
- ctrl+p+q :run进去容器,ctrl+p+q退出,容器不会停止
进入正在运行的容器:
- docker exec -it 容器id /bin/bash 【推荐使用】
- docker attach 容器id /bin/bash
从容器内拷贝文件到主机上:docker cp 容器id:容器内路径 目的主机路径
面试题:谈谈docker的虚悬镜像是什么?
仓库名、标签都是<none>的镜像,俗称虚悬镜像 dangling image