linux篇】九. Docker安装

中国加油,武汉加油!

篇幅较长,配合目录观看

案例准备

  1. 一台Centos7的服务器或虚拟机

1. 什么是Docker

  1. Docker时Docker.Lnc公司开源的一个基于LXC(Linux Container容器是一种内核虚拟化技术)技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
  2. Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
  3. 总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样

2. Docker术语

  1. 镜像(Image):只读模板,Docker 镜像是用于创建 Docker 容器的模板。
  2. 容器(Container):实例化的镜像,在只读层上增加了一层可写层,容器可以启动,停止, 删除和修改每个容器都是相互隔离的
  3. 仓库(Repository):集中存放镜像的地方,仓库分为公开仓库(Public)和私有仓库(Private) 两种形式世界上最大的公开仓库是Docker Hub,国内的公开仓库Docker Pool等。

3. 安装Docker

3.1 配置安装环境

yum install -y yum-utils device-mapper-persistent-data lvm2

3.2 安装docker源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.3 安装docker

yum -y install docker-ce

3.4 启动docker服务

systemctl start docker

3.5 配置镜像加速

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://prw94zmt.mirror.aliyuncs.com"]
}
systemctl restart docker

4. Docker的命令

命令 含义 备注
docker --help 万能的命令 docker xx --help
docker search hello-world 去dockerhub查找镜像
docker pull hello-world 去dockerhub拉去镜像 不给版本默认拉取最新版
docker images 查看所有镜像 -q
docker rmi hello-world 删除镜像 可以名字或者id
docker run hello-world 运行容器 –name xxx -d 后台运行 -i 交互运行 -t 伪终端操作 -p 宿主机和容器端口映射 8080:8080 -e 设置环境变量
docker -ps 查看运行的容器 -a 包含历史 -l 最近 -q 容器标识
docker stop xxx 中止指定容器 名字/id ctrl+pq
docker start xxx 启动指定容器 名字/id
docker kill xxx 强制停止容器 名字/id
docker rm xxx 删除指定容器 名字/id -f 删除启动状态下
docker attach xxx 进入指定容器 名字/id 如果是非交互式的容器会卡死
docker exec xxx [/bin/bash\ls] 命令行模式运行容器
docker inspect xxx 查看容器详细信息

5. Docker容器卷

语法如下:
docker run -it --name mycentos -v /usr/local/mycentos1:/usr/local/mycentos2 centos
左边是宿主机地址,右边是容器地址,如果地址不存在容器会自动创建。

5.1 容器卷是什么

数据卷存在于宿主机中,独立于容器,和容器的生命周期是分离的,数据卷存在于宿主机的文件系统中,数据卷可以目录也可以是文件,容器可以利用数据卷与宿主机进行数据共享,实现了容器间的数据共享和交换。

5.2 容器卷特点

  1. 容器卷可以在容器之间共享或者重用数据
  2. 容器卷中的更改可以直接生效
  3. 容器卷中的更改不会包含在镜像的更新中
  4. 容器卷的生命周期一直持续到没有容器使用它为止
  5. 一般都在创建容器的时候映射容器卷

6. 为什么要使用Docker

6.1 虚拟机的缺点:

  1. 资源占用多:虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有1M,虚拟机依然需要几百MB的内容才能运行。
  2. 启动慢:启动操作系统需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才能真正运行。

6.2 Docker在一定程度上是Linux容器的增强版

  1. 启动快,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
  2. 资源占用少,容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。
  3. 体积小,容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。
  4. 总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。

7. 虚拟机和容器的区别

7.1 虚拟机

  1. 完整的操作系统
  2. 占用资源大
  3. 拥有独立的内核

7.2 容器

  1. 轻量级
  2. 运行速度快
  3. 占用资源少
  4. 每个容器针对于宿主机而言是一个进程
  5. 占用的资源都是宿主机的
发布了126 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/TheNew_One/article/details/105131274