写点什么

Docker 入门

用户头像
飞跃
关注
发布于: 2021 年 05 月 21 日
Docker 入门

1、docker 介绍

docker 是一个基于 Go 语言实现的开源应用容器,允许开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中;


docker 镜像中包含运行环境和配置,从而简化项目的部署;


容器是完全使用沙箱机制,相互之间不会有任何接口,性能开销极低;

1.1 为什么 docker 这么火

更快捷的交付和部署:使用 Docker, 开发人员可以使用镜像来快速构建一套标准的开发环境;


更高效的资源利用:运行 Docker 容器不需要额外的虚拟化管理程序的支持,Docker 是内核级的虚拟化;


更轻松的迁移和部署:Docker 容器几乎可以在任意的平台上运行,同时支持主流的操作系统发行版本;


更简单的更新管理:使用 Dockerfile, 只需要小小的配置修改,就能替代以往大量的更新工作;

1.2 Docker 与虚拟机比较

1、Docker 容器很快,启动和停止可以在秒级实现;2、Docker 容器对系统资源需求很少;3、Docker 通过类似 Git 设计理念,方便用户获取、分发和更新应用镜像,存储复用,增量更新4、Docker 通过 Dockerfile 支持灵活的自动化创建和部署;
复制代码

1.3 虚拟化

虚拟化的核心是对资源(网络、内存和存储等)的抽象,虚拟化一般指的是应用虚拟化和平台虚拟化,平台虚拟化主要细分如下:


1、完全虚拟化:虚拟机模拟完整的底层硬件环境和特权指令的执行过程,客户操作系统无须进行修改,如:VMware Workstation、VirtualBox;
2、硬件辅助虚拟化:利用硬件(主要CPU)辅助支持处理敏感指令来实现完全虚拟化,客户操作系统无须修改,如VMware Workstation、KVM;
3、部分虚拟化:只针对部分硬件资源进行虚拟化,客户操作系统需要进行修改,有些虚拟化技术的早期版本支持;
4、超虚拟化:部分硬件接口以软件的形式提供客户机操作系统,客户操作系统需要进行修改,如 Xen;
5、操作系统虚拟化:内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,容器技术即在这个范畴;
应用程序 应用程序 应用程序 应用程序 运行时环境 运行时环境 运行时环境 运行时环境虚拟机 OS 虚拟机 OS Docker 容器支持虚拟机管理程序 宿主机操作系统宿主机 OS 硬件层硬件层 "Docker 虚拟化方式" "传统的虚拟化方式"
复制代码



2、Docker 核心概念

1、镜像:Docker 镜像类似于虚拟机镜像,可以理解为一个只读的模板


2、容器:Docker 容器类似一个轻量级的沙箱,Docker 利用容器来运行和隔离应用;


容器是从镜像创建的应用运行实例,可以把容器看做是一个简易版的 Linux 系统环境以及运行在其中的应用程序打包而成的盒子;


3、仓库:Docker 仓库类似于代码仓库,是 Docker 集中存放镜像文件的场所,仓库注册服务器是存放仓库的地方;


每个仓库集中存放某一类镜像,通过不同的标签(tag)来进行区分;


用户创建了自己的镜像之后就可以使用 push 命令将它上传到指定的公有或者私有仓库;



3、centos7 上安装 docker

可以参考:https://docs.docker.com/install/linux/docker-ce/centos/


  • [ ] 1、检查 linux 内核版本,需要在 3.10 以上


> uname -r 或 cat /proc/version
复制代码


  • [ ] 2、更新 yum 源


> sudo yum update
复制代码


  • [ ] 3、移除旧版本:


> sudo yum remove docker \                 docker-client \                 docker-client-latest \                 docker-common \                 docker-latest \                 docker-latest-logrotate \                 docker-logrotate \                 docker-selinux \                 docker-engine-selinux \                 docker-engine
复制代码


  • [ ] 4、安装一些必要的系统工具


> sudo yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码


  • [ ] 5、添加软件源信息:


> sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码


  • [ ] 6、更新 yum 缓存:


> sudo yum makecache fast
复制代码


  • [ ] 7、安装 Docker-ce:


> sudo yum -y install docker-ce
复制代码


  • [ ] 8、启动 Docker 后台服务


> sudo systemctl start docker
复制代码


  • [ ] 9、测试运行 hello-world


> docker run hello-world
复制代码



4、docker 常用命令

  • 查看 docker 的版本: docker -v

  • 开机启动 docker: systemctl enable docker

  • 停止 docker: systemctl stop docker

  • 通过关键字搜索镜像: docker search 关键字

  • 下载镜像: docker pull 镜像名

  • 查看 docker 的本地镜像:docker images

  • 删除本地镜像: docker rmi 镜像名/镜像 ID

  • 查看运行中的镜像: docker ps

  • 查看所有容器: docker ps -a

  • 暂停/运行 容器: docker stop/start 容器

  • 删除本地容器: docker rm 容器

  • 查看某个容器的日志: docker logs 容器

  • 以某种参数运行容器: docker run xxx 容器名, (-d 后台运行、--name 自定义容器名、-p 主机端口:容器端口)

发布于: 2021 年 05 月 21 日阅读数: 24
用户头像

飞跃

关注

还未添加个人签名 2018.08.09 加入

还未添加个人简介

评论

发布
暂无评论
Docker 入门