Class 2 基于ECS快速搭建Docker环境

讲点故事

Docker 是什么?

  • Docker 是一种目前主流的、基于 Linux namesplace、chroot、cgroup 等特性的容器技术,因此它适用于 Linux 操作系统 (win 平台 docker 基于 vbox 虚拟机来实现)
  • 比较流行的容器技术还有 lxc、Rkt 等。而Docker 是针对应用的容器技术,lxc 是针对系统的容器技术

为什么需要 Docker

  • 很久以前就听过,公司要上线一个产品,开发将写好的代码发给运维,运维部署后发现不能跑,于是双方开始扯皮:开发说我这儿运行正常,你那就不行了,这是你运维的锅。运维说这分明是你代码的问题,我这儿其他项目怎么都没问题,最后双方坐下来排查,是依赖环境的问题。。开发使用了对 android 开发友好的 Ubuntu,而运维使用了常用的 Centos,两个 Linux 发行版之间默认的 JDK 依赖版本不一样

  • 而这种依赖环境的问题在生活中很常见,起初 Docker 就是来解决这种问题的

  • 经过了长足的发展,现在的 Docker 已经不仅限于解决环境问题了,更给人们带来了一种一键启用的新项目部署方式

Docker 是针对应用的容器技术

  • 比如我们要搭建一个 typecho 博客

  • 在拥有 Docker 之前,我们需要按照 官网教程 这样搭建 LNAP 环境、安装 php 依赖、配置 mysql、下载源码才能搭建完成

  • 在拥有 Docker 之后,我们只需从 Dockerhub 中拉取镜像、运行容器,即可享用你的 typecho,例如以下命令

      docker pull 80x86/typecho  # 拉取镜像
      docker run -id --name typecho -p 80:80 80x86/typecho  # 从镜像运行一个容器
    

Docker 中容器和镜像的概念

  • 一个容器可以理解为一个功能不完全(以 chroot 方式运行) 的虚拟机
  • 而一个镜像可以理解为,一个由 Dockerfile 定义的模板,通过模板即可一秒生成一个配置好的虚拟机来
  • Dockerfile 相当于软件的配置文件,写了镜像基于什么系统、需要使用哪些端口等等信息

开始实践

在连接了 ECS 的情况下,继续下列流程

安装 Docker 的依赖

    yum install -y yum-utils device-mapper-persistent-data lvm2
    # yum install 是使用包管理器 yum 安装后续的包
    # -y 参数是直接确认,省略询问是否安装的流程

添加 Docker 的源

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

在这里插入图片描述

安装 Docker

    yum makecache && yum -y install docker-ce  # 更新源并安装 docker

使用镜像加速器

    # 使用 RAM 帐号,登入控制台,选择容器镜像服务中的镜像加速器,按照提示执行以下命令
    mkdir -p /etc/docker  # 创建 docker 配置目录
    tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://o4rhu51e.mirror.aliyuncs.com"]
    }
    EOF  # 填入镜像加速器地址
    systemctl enable --now  docker  # 启用 Docker 并设为开机自启
    docker ps -a  # 查看下正在运行的容器,这步是试着看下 docker 是否可以运行
    systemctl status docker  # 也可以通过 systemctl、service 命令来查看 docker 服务的运行状态

在这里插入图片描述

搭建 nginx

    docker search nginx  # 搜索关于 Nginx 的镜像
    docker pull nginx:latest  # 拉取 nginx 版本 latest 的镜像
    docker images  # 查看本地拉取的镜像
    docker run --name nginx-test -p 8080:80 -d nginx  # 从 nginx 镜像以守护模式创建一个叫 nginx-test 的容器,将 ECS 服务器的 8080 端口映射给容器的 80 端口

在这里插入图片描述

访问 ECS 公网 IP:8080 就可以看到 Nginx 的默认页面

在这里插入图片描述

结尾声明

本文已参加阿里云高校计划
阿里云高校计划,陪伴两千多所高校在校生云上实践、云上成长。在这里你可以领用免费的cpu资源,还可以参加免费训练营,实践提高:!https://developer.aliyun.com/adc/student/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值