docker简介
1.docker是基于go语言实现
主要目标是对对应组件的封装、分发、部署、运行等生命周期的管理,使应用程序及其运行环境能够做到“一次封装,到处运行”
2.docker为了解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术
3.docker能干些什么?
- 虚拟机技术
简单理解可以在一种操作系统里面运行另外一种操作系统,比如windows中运行linux系统,常见的是vmware;缺点:占用资源,启动慢,安装步骤繁琐。 - 容器虚拟化技术
docker既是一种容器虚拟化技术,docker本身是一个容器运行载体或称之为管理引擎,我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是镜像文件,只有通过这个镜像文件才能生成docker容器。docker 根据 image 镜像文件生成容器实例。同一个image文件可以生成多个同时运行的容器实例。 - docker 架构
docker使用
docker的三大要素
- 仓库:存储镜像的地方,分为公开仓库和私有仓库
- 镜像
- 容器:用镜像创建的运行实例,可以把容器看成简易版的Linux的容器
hello world 运行
docker run hello-world
docker底层原理
docker是一个client-server结构的进程,docker守护进程运行在主机上,然后通过socket连接从客户端的访问,守护进程从客户端接受命令并管理运行在主机上的docker容器。容器是一个运行时环境,就是鲸鱼背上的一个个集装箱。
docker常用命令
1.帮助命令
docker versiondocker infodocker --help
2.镜像命令
docker images : 列出本地镜像docker image -qa : 显示全部镜像iddocker images --digests : 显示镜像简介信息docker images --digests --no-truncdocker search tomcat : 搜索某个镜像docker pull tomcat : 下载镜像到本地 等价于 docker pull tomcat:latest(默认下最新版本)docker rmi tomact : 删除某个镜像 docker rmi tomcat:6.5 删除制定版本镜像docker rmi -f tomcat 强制删除镜像docker rmi -f nginx tomcat 强制删除多个镜像docker rmi -f ${docker images -qa} 强制删除全部
3.容器命令
docker pull centos : 下载centos镜像docker run [options] image—name=“容器新名字” :为容器制定一个名字-i : 容器的image id-t : 交互式启动 ,比如 :docker run -it 0a8b6f21d511-d : 后台运行容器-p : 制定映射端口,有以下四种形式hostPort:containerPort docker run -it -p 8080:8080 tomcat (-p 指定主机端口:docker容器暴露给宿主机的端口;-P 随机分配端口)docker ps : docker中运行的进程,docker ps -n 5容器退出 :exit (容器停止退出)docker restart \ docker stop \ docker kill \ docker rm 一次性删除多个容器 docker rm -f $(docker ps -qa)docker ps -aq | args docker rm重要的docker容器命令docker run -d 容器名docker logs -f -t --tail n 容器id(-f : 跟随最新的日志;-t :加入时间戳;--tail n : 倒数几行) 演示命令: docker run -d centos /bin/sh -c 'while true;do echo hello zzyy;sleep 2;done' 每隔两秒输出内容docker top 容器ID : 查看容器内部运行的进程docker inspect 容器ID : 查看容器内部细节,如:docker inspect f791d79a4467docker attach 容器ID : 重新进入未停止的容器docker exec -t f791d79a4467 ls -l /tmp : 重新进入某个容器并执行容器中的命令,拿到结果反给宿主机docker cp 容器ID:路径文件 /宿主机路径 :copy容器内容到宿主机上
docker的镜像
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时需要的库、环境变量和配置。
- unionFS:联合文件系统,一层层文件系统组成
docker如何加载?
docker的镜像实际上由一层一层的文件系统组成,这种层级文件系统是unionFS- bootfs(boot file system):主要包含bootloader和kernel,bootloader主要引导加载kernel,linux刚启动是会加载bootfs文件系统,在docker镜像最底层是bootfs文件。这一层于我们典型的Linux/unix系统一样,包含boot加载器和内核。当boot加载完成之后整个内核就在内存中了,此时系统会卸载bootfs
- rootfs(root file system):在bootfs之上,包含的就是典型linux系统中的/dev,/bin,/etc等目录和文件。
docker commit -m=“提交信息” -a=“作者” 容器ID 要创建的目标镜像名称:[标签名]docker commit -m=“helloword” -a=“feifei” 0a8b6f21d511 feifei/tomcat02:1.2