应用容器化

应用容器化

作业要求

参考:玩转 Docker 容器技术:1-6章,按课件内容实践,并给出实验报告。

实验大纲

本次实验我完成了docker环境的部署、docker的基本操作、部署mysql、容器化、volume的挂载

实验环境

VMware CentOS7 虚拟机。
虚拟机安装过程参考博客

安装docker

安装前需要在cmd输入’su‘然后输入root用户密码进入root账户。

首先要安装依赖的软件包。安装 yum-utils,yum-utils提供yum-config-manager,devicemapper存储驱动程序依赖device-mapper-persistent-data和lvm2。

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

在这里插入图片描述

接下来要设置稳定的储存库。

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

在这里插入图片描述

然后安装最新版的Docker Engine-Community和containerd。

sudo yum install docker-ce docker-ce-cli containerd.io

安装完成后的终端输出如下:
在这里插入图片描述
启动docker

sudo systemctl start docker

为了验证是否正确安装了Docker Engine-Community,试着运行hello-world镜像。

sudo docker run hello-world

但本地并不存在hello-world镜像,因此会有一个拉取镜像文件的过程,如果终端显示“Hello from Docker”,则表明安装成功。
如图:
在这里插入图片描述
我们还可以检测docker的版本号。

docker version

在这里插入图片描述

docker基本操作

运行镜像

刚刚运行hello-world镜像是用于检测的,下面运行ubuntu镜像。

docker run -it ubuntu bash

如果直接运行会发现拉取速度非常慢甚至卡住,添加docker 的镜像源可以有效解决这个问题,具体参考博客
运行结果如下:
在这里插入图片描述
可以用以下命令显示本地镜像库的内容。

显示本地镜像库内容

输入以下命令可以看到本地镜像库的内容,里面包含刚刚拉取的hello-world镜像和ubuntu镜像。

docker images

在这里插入图片描述

显示运行中的容器

输入docker ps可以看到y运行中的容器,但当前没有运行中的容器,所以显示为空。
在这里插入图片描述

显示所有容器

输入docker ps -a可以看到所有容器,包括ubuntu还有我测试了很多次的hello-world。。。
在这里插入图片描述

重新运行原容器

可以看到每个容器都有一个NAMES属性,输入以下命令可以重新运行某个容器并进入。

docker restart $NAMES
docker ps
dockerr attach $NAMES

我重新运行ubuntu容器,结果如下:
在这里插入图片描述

MySQL与容器化

拉取MySQL镜像

输入docker pull mysql:5.7拉取镜像:
在这里插入图片描述
输入docker images检测镜像拉取是否成功:
在这里插入图片描述

构建docker镜像

首先创建一个文件夹,命名为docker,进入并创建一个Dockerfile文件。
Dockerfile文件输入以下内容(sudo vi Dockerfile):
在这里插入图片描述
运行命令docker build . -t hello构建镜像hello
在这里插入图片描述
然后运行镜像,检测其是否构建成功:

docker run -it --rm hello -H

在这里插入图片描述

使用MySQL容器

首先输入以下命令以启动服务器:

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

输出结果如下:
在这里插入图片描述
输入以下命令凭借用户名和密码打开数据库端口:

docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -P3306 -uroot -proot

在这里插入图片描述
然后创建卷mydb并挂在/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

在这里插入图片描述
输入以下两个命令以连接两个容器,使得客户端容器内可以使用mysql这个别名访问服务器:

docker run --name myclient --link mysql2:mysql -it mysql:5.7 bash
mysql -hmysql -P3306 -uroot -proot

在这里插入图片描述

搭建私有容器仓库

输入以下命令来启动仓库容器:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

在这里插入图片描述

从Docker Hub上拉取ubuntu:16.04镜像,并且重新标记其为my-ubuntu,然后将它到本地registry,删除两个镜像,把my-ubuntu镜像从本地registry移除。
输入命令docker pull ubuntu:16.04拉取镜像:
在这里插入图片描述
输入命令docker tag ubuntu:16.04 localhost:5000/my-ubuntu为镜像创建一个附加的标签。
输入命令docker push localhost:5000/my-ubuntu将镜像推送到localhost:5050运行的本地仓库。
在这里插入图片描述
删除本地缓存ubuntu:16.04和localhost:5000/my-ubuntu 镜像:

docker image remove ubuntu:16.04
docker image remove localhost:5000/my-ubuntu

在这里插入图片描述
从localhost:5050中把镜像拉取出来:

docker pull localhost:5000/my-ubuntu

在这里插入图片描述
最后用以下命令停止并删除本地仓库:

docker container stop registry
docker container rm -v registry

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值