天天看点

服务计算——docker容器化实践

安装Docker环境

  • 本博客采用

    Ubuntu(64-bit)

    系统完成
  • 按照Docker官网提示,完成如下操作
  1. 输入

    apt-get remove docker docker-engine docker.io containerd runc

    指令,确认无旧版本

    docker

    服务计算——docker容器化实践
  2. 输入

    apt-get update

    更新

    apt

    服务计算——docker容器化实践
  3. 输入

    apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

    安装包以通过

    HTTPS

    访问

    dockerHub

    仓库
    服务计算——docker容器化实践
  4. 输入

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    添加

    Docker

    GPG key

    ,并通过

    apt-key fingerprint 0EBFCD88

    指令确认是否添加成功,输出如下图二红框所示即为成功。
    服务计算——docker容器化实践
    服务计算——docker容器化实践
  5. 输入

    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    安装仓库信息为安装镜像作准备
    服务计算——docker容器化实践
  6. 上述准备操作完成后,输入指令

    apt-get install docker-ce docker-ce-cli containerd.io

    安装最新版的

    Docker

    容器化引擎,过程等待时间可能稍长
    服务计算——docker容器化实践
  7. 调用

    docker version

    指令,输出结果如下,表示

    Docker

    安装成功
    服务计算——docker容器化实践
  8. 调用

    DockerHub

    上自带的

    hello-world

    镜像,通过指令

    sudo docker run hello-world

    ,输出结果如下图所示即可开始

    Docker

    的正式使用
    服务计算——docker容器化实践

Docker简单操作

  • 输入指令

    docker run -it ubuntu bash

    安装镜像并执行,此时会进入类

    Ubuntu

    虚拟机的操作界面下,输入指令

    ls

    能查看当前镜像路径下的文件,示意图如下:
    服务计算——docker容器化实践
  • Docker

    调用镜像时,当镜像位于本地库内则直接调用,否则会从

    DockerHub

    上加载相应镜像到本地镜像库,通过

    docker images

    可以查看本地镜像库内容
    服务计算——docker容器化实践
  • 通过

    ps

    指令显示容器属性,按照容器的

    NAMES

    属性可以调用

    docker restart DOCKER-NAME

    启动容器,但此时需要通过

    attach

    指令进入容器
    服务计算——docker容器化实践
  • 可以调用

    pull

    指令主动从

    DockerHub

    上拉取镜像,如:
    服务计算——docker容器化实践
  • 通过建立

    dockerfile

    并设置相应的

    docker

    所需信息,即可调用

    build

    指令构建镜像
FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]
           
  • 以上述配置调用

    docker build . -t hello

    创建命名为

    hello

    的镜像
    服务计算——docker容器化实践
  • 通过

    docker run -it --rm hello -H

    指令运行该镜像,输出结果如下:
    服务计算——docker容器化实践
  • 通过指令

    docker pull mysql:5.7

    获取

    MySQL

    镜像后,调用指令

    sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_PASSWORD=root -d mysql:5.7

    启动镜像并通过

    docker run -it --net host mysql:5.7 "sh"

    启动客户端,输入数据库指令即可进入

    MySQL

    操作界面
    服务计算——docker容器化实践
  • 启动

    ubuntu

    镜像,安装必要的指令,调用

    ifconfig

    查看当前

    docker

    内的

    ip

    信息,即如下图所示:
    服务计算——docker容器化实践
  • 退出

    ubuntu

    镜像,在主机上再次输入

    ifconfig

    查看网络信息,输入结果如下。通过对比发现,

    docker

    下的镜像与主机采用同一网关且对局域网ip地址进行了相应的修改,如主机的

    172.17.0.1

    而镜像上显示

    172.17.0.2

    服务计算——docker容器化实践
  • 通过

    docker info

    查看

    docker

    状态
    服务计算——docker容器化实践
  • 通过

    docker logs CONTAINER_ID

    查看对应镜像ID的输出日志,以

    hello-world

    为例,输出结果如下所示
    服务计算——docker容器化实践

小结

使用

docker

之前,对相应的概念有了一定的了解,依我看来,

docker

相当于通过

linux

系统分配资源后,内部有一定的操作,而操作的具体内容便是镜像对应的功能,调用镜像即为在其内搭建了一定的环境以供用户使用,相当于没有完整操作系统的虚拟机,可以适配多种系统/模式下的需求,而且由于是沙箱模式,对主机不会产生过大的影响。后续的使用按照教程去逐步尝试,发现操作并不难,相对而言是用户友好的容器引擎,使用十分方便。