第二章Docker镜像

什么是Docker的镜像

docker的镜像是一个模板,或者说其是一个只读文件,在该模板中包含应用和应用运行时所需要的依赖环境。Docker的镜像采用的是分层的文件系统,每一次对镜像的修改将以"读写层"的形式增加到原来的只读文件的模板上。

内核(bootfs):用来加载 Linux的内核以启动Linux环境。Docker 的用户不会
与这一层直接打交道。
根镜像:可以将其理解成操作系统,图2-1中的根镜像使用的是 CentOS。
在根镜像之上就是叠加的每一层应用,图2-1中的MySQL、Tomcat 等。

 Docker 默认的镜像存储路径是“/var/lib/docker",也可以自定义其他路径。

1.使用Docker默认的镜像存储路径

通过执行以下语句可以得知Docker镜像的存储路径,可以看出在默认情况下,Docker将
拉取的镜像存储在“/var/lib/docker"目录下
docker info | grep "Docker Root Dir"

 确定镜像ID,这里是c20060033e06

docker images

 切换到"/var/lib/docker/"

cd /var/lib/docker/

 执行"find"命令查找镜像文件

find . -name c20060033e06*

1.2 自定义Docker的镜像存储路径
在实际生产环境中,Docker默认的镜像存储路径往往不能满足磁盘空间大小的要求。
可以根据以下步骤来修改这个存储路径。
(1)创建新的镜像存储路径“/data/docker”,该路径用于保存 Docker的镜像文
件。

 

  

创建Docker守护进程的配置文件

cd /etc/docker
vim deamon.json

 在demon.json文件中输入以下内容,然后再保存退出

{
"graph" : "/data/docker"
  }

 重新加载Docker的服务,并重启Docker

使用Docker的公有镜像仓库
存储Docker 镜像的地方叫作镜像仓库。镜像仓库分为公有镜像仓库和私有镜像仓库。
下面通过实战来介绍如何使用Docker 公有镜像仓库。
使用“docker search”命令搜索镜像仓库中的一个镜像,如MySQL.
docker search mysql
使用“docker search”命令拉取 MySQL的镜像。如果在拉取镜像时没有指定版
本,则默认拉取最新版本的镜像。也可以在拉取时指定版本信息
docker pull mysql:5.7.19
用拉取的MySQL 镜像创建一个容器,用来运行MySQL 数据库。
-p:2206表示宿主机的端口号:3306表示容器的端口号。这里是将容器的
3306端口映射到了宿主机的2206端口。
-e:传递一个变量给容器。这里通过变量MYSQL_ROOT_PASSWORD 设置
了MySQL的root用户的密码为 123.123。
查看容器的信息

 

 使用Docker命令进入容器

docker exec -it 8e5b81878706 /bin/bash

登录MySQL 数据库时输入密码“123.123”

在MySQL的命令行中执行以下命令则允许 root用户远程登录(mysql> grant all
privileges on *.* to root@"%" identified by "123.123" with grant option;)

 

 用yum -y  install mariadb安装这个软件包,然后再重新使用MySQL客户端登录这时就可以成功访问Docker 容器中的MySQL 数据库了

 重新拉取某个镜像,Tomcat,会发现速度快了很多

docker pull tomcat

使用拉取的Tomcat镜像创建一个容器

docker run --name mytomcat -d -p 8080:8080 tomcat

 确定 Tomcat 容器ID,进入容器内部署一个简单的HTML 网页

 

在浏览器中访问“http://192.168.8.39:8080/mydemo/index.html”,可以成
功看到index.html

 

在Dockerfile 文件所在的目录下执行“docker buld”命令构建镜像。构建的过

使用新生成的镜像创建容器。

docker run -d -p 7788:80 mynginx

 

 

 

 将MyDemoWeb.war 应用下载到 Dockerfile 文件的同级目录下。

wget https://raw.githubusercontent.com/collenzhao/‐doc
ker‐k8s‐resources‐chapter2/main/MyDemoWeb.war

使用“docker build”命令编译 Dockerfile 文件,并通过参数“-t”指定镜像的
标签名称提示,在这条“docker build”命令的最后有一个点(.)。
docker build -t mywebapp
使用“docker run”命令基于mywebapp 的镜像创建容器。
使用浏览器访问“http://192.168.149.39:8081/MyDemoWeb/”就可以正常访问
应用了

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值