docker学习

更新Linux的内核
yum update


重启docker服务:
sudo service docker restart

systemctl restart docker

查看docker版本:
docker --version

查看docker配置信息:
docker info
docker version

启动docker容器
systemctl start docker

启动docker
start docker

关闭docker
systemctl stop docker

查看docker的运行状态
systemctl status docker

查看所有容器(包含已经停止的容器)
docker ps --all或 docker ps -a

查看所有docker镜像
docker images

镜像搜索:
docker search image-name

下载镜像
docker pull image-name

删除镜像:
docker rmi -f 镜像id/镜像名称

查看当前正在运行docker
docker ps

启动容器:
docker start imagesId

停止容器“
docker stop imagesId

退出容器:
exit:容器停止退出
CTRL+P+Q:容器不停止退出

查看容器日志:
docker logs -f -t --tail 容器id
-t是加入时间戳
-f是跟随最新的日志打印
--tail数字显示最后多少条

查看容器内运行进程
docker top 容器id

查看容器内部细节(展示json配置):
docker inspect 容器id

重新进入:
docker attach 容器id:直接进入容器启动命令的终端,不会启动新的进程

docker exex -it 容器id [bashShell]:是在容器中打开新的终端,并且可以启动新的进程

从容器内拷贝文件到主机上:
docker cp 容器id :容器内路径 目的主机路径

docker 镜像是什么:
镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,
它包含运行某个软件所需的所有内存,包括代码,运行时,库,环境变量和配置文件

1.unionFS联合文件系统:是一种分层,轻量级并且高效能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加
2.Docker镜像加载原理
3.分层的镜像
4.为什么Docker镜像要采用这种分层结构呢:共享资源

特点:
docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作容器层,
容器层之下的都是镜像层






Docker是基于Go语言实现的云开源项目
Docker的主要目标是 Build ,Ship and Run Any App,Anywhere,也就是通过对应用组件的封装,分发,部署,运行
等生命周期的管理,使用户的app及其运行环境能够做到“一次封装,到处运行”

Docker容器在任何操作系统上都是一致的,这就实现了跨平台,跨服务器。只需要一次配置好环境,换到别的
机子上就可以一键部署好,大大简化了操作


docker解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术


虚拟机就是带环境安装的一种解决方案
它可以在一种操作系统里面运行另一种操作系统,比如windows系统里面运行linux系统,应用程序对此毫无感知,因为虚拟机上
去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响,这类虚拟机完美的
运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变


虚拟机缺点:
1.资源占用多 2.冗余步骤多 3.启动慢

Why Docker?
更轻量:基于容器的虚拟化,仅包含业务运行所需的runtime环境
更高效:无操作系统虚拟化开销
更敏捷,更灵活:分层的存储和包管理,devops理念,支持多种网络配置

linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,有了容器,就可以将软件所需的所有资源打包到一个隔离的容器中,
容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的资源和配置,系统因此而变得高效轻量,并保证部署在任何环境
中的软件都能始终如一的运行

docker和虚拟机的不同
1.传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上在运行所需应用进程
2.而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此容器要比传统虚拟机更轻便
3.每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源


docker三大特征:容器,镜像,仓库

docker-cn.com

Docker镜像image就是一个只读的模板,镜像可以用来创建docker容器,一个镜像可以创建多个容器
它可以被启动,开始,停止,删除,每个容器都是互相隔离的,保证安全的平台
可以把容器看做是一个简易版的linux环境(包括root用户权限,进程空间,用户空间,网络空间)和运行在其中的应用程序
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读写的

仓库(Repository)是集中存放镜像文件的场所
仓库和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像
每个镜像有不同的标签

仓库分为公开仓库和私有仓库两种形式
最大的公开仓库是Docker Hub(https://hub.docker.com)
存放了数量庞大的镜像供用户下载,国内的公开仓库包括阿里云,网易云等;


阿里云镜像加速配置:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://3q5mnu1c.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


Linux 下的 Docker 安装与使用
https://www.cnblogs.com/myzony/p/9071210.html




















原文地址:https://www.cnblogs.com/zjdxr-up/p/13069785.html