一、docker技术原理简介
集装箱这是现实生活中大家都熟知的,它的主要作用就是存放货物,彼此独立开来,相互隔离。docker也是运用了 集装箱思想,可以把我们工作中常用的软件或者应用打包好,然后打包他们到一个轻量级、可移植的容器中。容器可以运行在一些主流的操作系统上,包括ubuntu、centos、rhel、windows。docker中用到的资源、网络、库都是隔离的,不会出现依赖问题,就像集装箱一样,独立成型。并且docker提供 run, start, stop 等标准化操作,非常适合自动化,就像service或者systemctl启动关闭一个操作系统服务一样。 除此之外,docker也算是虚拟化,容器虚拟化,比起传统的虚拟化,他有很多优势,比如,创建速度非常快,我们docker pull拉取相应镜像就可以部署应用;共享Kernel,几乎没有性能损耗;构建隔离的标准化环境;可以提供PaaS环境,我们平时使用的虚拟化,基本都是Iaas环境。 二、docker组件 主要有客户端、服务器 、镜像 、仓库 、容器 2.1 客户端 最常见的客户端就是docker 命令,通过docker命令可以方便地在Host(宿主机)上构建和运行容器。比如docker ps
2.2 服务器 docker deamon就是服务器组件,以服务的形式运行在操作系统后台的形式运行。dockerinfo 可以查看服务器的信息。 2.3 镜像 镜像是容器的基石,是一个层叠的只读文件系统。我们可以下载别人创建好或者封装好的镜像,也可以通过现有镜像创建新的镜像。docker images ls 2.4 容器 镜像的运行实例,它通过镜像启动,使用了写时复制功能来完成文件内容的变化,与镜像配合使用,达到相辅相成的作用。 2.5 仓库 存放docker镜像的仓库,分为共有和私有两种,就像云计算里面的公有云和私有云一样,docker pull 命令可以下载镜像。docker run 命令则是再启动容器,如果本地没有镜像,它还可以先下载在启动。 三、docker常用命令 3.1 安装docker sudo apt update sudo apt list |grep docker,列出docker安装包,ubuntu切换root用户,可以直接使用sudo -i apt install docker.io 开始安装docker服务 有时候会因为网络问题得不到一些包,这时候需要在安装命令后面执行maybe run apt-get update or try with --fix-missing。 apt install docker.io --fix-missing 3.2 查看docker服务 systemctl status docker.service
3.3 查看docker版本 docker version 3.4 下载镜像 docker pull 镜像名字,一般是从registry下载。
3.5 显示镜像列表 docker image ls 3.6 查看镜像信息 docker inspect busybox 3.7 运行容器 docker run -d # 后台运行, -i :交互 , -t : 提供terminal 终端 --name 指定容器的名字 最后的参数一定docker image名: 标签 docker run -dit --name=c1 busybox 3.8 进入容器 docker exec -it 运行容器中的命令 (一定是容器里面有的命令) #在原有的容器里重新生成新的进程 3.9 访问容器进程 docker attach # 直接访问现有容器中的进程 ,不产生新的进程 , 只能接管 shell程序 3.10 启动、重启、停止、杀死容器 docker stop id/name 停止一个容器 docker start id/name 重新启动一个容器 docker kill id/name 杀死一个容器 docker restart id/name 重启一个容器 3.11 显示容器 docker ps 显示所有正在运行的容器 docker ps -a 显示所有容器 3.12 docker top id/name 显示指定容器的top信息 |