服务计算——容器化技术与容器服务

容器化技术和容器服务

一、实验目的

  • 了解容器化服务并掌握docker的基本使用

二、实验环境

  • 实验环境:VM虚拟机
  • 系统:Ubuntu 16.04

三、实验过程

3.1 docker安装

由于老师给的版本为Centos系统的安装方法,个人虚拟机为Ubuntu,所以自己在网上找到其他方法进行安装
首先查看系统的内核版本是否符合安装docker的要求

uname -r

在这里插入图片描述

  • 之后查询是否已经安装了docker,如果已经安装,则删除原版本重新安装
    在这里插入图片描述
  • 这里我之前并没有安装,所以删除为空

在这里插入图片描述

  • 首先更新apt-get
    在这里插入图片描述
  • 然后添加Docker官方的GPG密钥

在这里插入图片描述

  • 配置stable存储库

在这里插入图片描述

  • 安装最新版本的Docker CE:
sudo apt-get install -y docker-ce
  • 验证安装成功:
systemctl status docker

在这里插入图片描述

  • 查看版本:
docker version

在这里插入图片描述

3.2 运行第一个容器

  • 我们首先运行我们第一个程序hello world
  • 首先获取image并运行:
docker run hello-world

在这里插入图片描述

  • 可以看到成功输出 Hello from Docker!

3.3 docker基本操作

按照课件顺序执行命令:

docker run -it ubuntu bash

在这里插入图片描述

  • 这里我们使用了-it参数来令终端与容器进行交互,具体操作见下面的restart后的操作

  • 查看镜像内容:

docker images

在这里插入图片描述

  • 查看正在运行容器:
docker ps

在这里插入图片描述

  • 查看运行中和中止容器
docker ps -a

在这里插入图片描述

  • 查看帮助
docker --help
  • 重启已经中止的容器并进入
docker restart { ID }

在这里插入图片描述

docker ps
  • 可以看到ubuntu容器正在运行
    在这里插入图片描述
docker attack { ID }
  • 进入之后我们在容器ubuntu中查看文件结构,使用ls命令可以查看容器内部结构如下所示
    在这里插入图片描述

3.4 Mysql 容器化并使用Volume创建卷

我们这里拉取mysql镜像容器使用,这里由于比较大,所以建议先换一下源,否则下载时间过长

  • 拉取Mysql镜像
docker pull mysql:5.7

在这里插入图片描述

  • 查看现有镜像
docker images

在这里插入图片描述

  • 之后启动Mysql的服务端:
sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

在这里插入图片描述

  • 启动Mysql客户端:
docker run -it --net host mysql:5.7 "sh"
  • 登录Mysql账户:
mysql -h127.0.0.1 -P3306 -uroot -proot

在这里插入图片描述

  • 查看Mysql容器的数据库文件配置:
docker exec -it mysql2 bash

在这里插入图片描述

  • 查看数据库的卷:
docker container prune -f
docker volume prune –f
docker volume ls

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

每次启动 mysql 容器,docker 创建一个文件卷挂载在容器内/var/lib/mysql位置,我们这里按照课件手动创建卷并挂载它

docker rm $(docker ps -a -q) -f -v
docker volume create mydb
docker run --name mysql2 -e MYSQL_ROOT_PASSWORD=root -v mydb:/var/lib/mysql -d mysql:5.7

在这里插入图片描述

  • 启动客户端容器并连接服务器
docker run --name myclient --link mysql2:mysql -it mysql:5.7 bash

在这里插入图片描述

  • 登录数据库:
    在这里插入图片描述
    成功登录

3.5 构建docker镜像

按照课件方法构建一个docker镜像

  • 首先创建文件夹并编辑dockerfile
mkdir mydock && cd mydock
vi dockerfile
  • 在dockerfile中加入如下代码
 FROM ubuntu
 ENTRYPOINT [“top”, “-b”]
 CMD ["-c"]
  • 构建镜像:
docker build . -t hello

在这里插入图片描述

  • 运行镜像:
docker run -it --rm hello -H
  • 运行结果为一直输出如下内容

在这里插入图片描述

3.6 docker网络

  • 管理容器网络:
docker network ls

在这里插入图片描述

  • 建立支持 ifconfig 和 ping 命令的 ubuntu 容器

  • 这里我门使用老师课件代码进行
    在这里插入图片描述

  • 完成之后我们查看命令是否能够使用:

  • 查看ip:
    在这里插入图片描述

  • 尝试ping:(这里的ip地址由上方ifconfig中的ip得出)
    在这里插入图片描述

  • 启动另一个命令窗口,由容器制作镜像

docker commit unet ubuntu:net

在这里插入图片描述

  • 创建自定义网络mynet
docker network create mynet

在这里插入图片描述

  • 之后按照课件要求,在另外的命令行窗口建立u1和u2网络,并使用课件命令验证,结果如下:

创建u1
在这里插入图片描述
创建u2
在这里插入图片描述
查看状态信息(这里显示部分)
在这里插入图片描述
在这里插入图片描述

3.7 docker仓库

首先我们先登录阿里云建立我们的容器镜像仓库,之后进行接下来的操作来进行对于远程仓库的操作,按照课件完成即可

  • 登录:
    在这里插入图片描述

  • 标签
    在这里插入图片描述

  • 上传
    在这里插入图片描述

  • 删除
    在这里插入图片描述

  • 运行:
    在这里插入图片描述
    退出:
    在这里插入图片描述

3.8 docker监控与日志

  • 检查docker状态:
docker info
  • 查看容器进程:
Docker top
Docker stats
//查看容器详细信息
docker inspect -f

四、实验心得

本次实验主要了解了应用容器化的技术,你不可能在系统上运行100个虚拟机,但是可以运行100个容器,以及了解了docker的基本使用,以及网络、数据库、基本查询操作和创建操作,对于以后使用docker奠定了基础

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值