第二章 docker镜像

1.什么是Docker的镜像

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

图2-1展示了Docker镜像的分层结构,下面将进行介绍。

内核(bootfs):用来加载Linux的内核以启动Linux环境。Docker的用户不会与这一层打交道。

根镜像:可以将其理解成操作系统,图2-1的根镜像使用的是Centos。

在根镜像之上就是叠加的每一层应用,图2-1中的MySQL、Tomcat等。

另外,在物理存储上,镜像的本质其实是磁盘上一系列文件的集合,如图2-2所示。Docker默认的镜像存储路径是\"/var/lib/docker\",也可以自定义其他路径

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

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

  • [root@localhost ~]# docker info | grep "Docker Root Dir"
    

    2.2查看镜像id

  • [root@localhost ~]# docker images
    

    2.3使用find命令查询镜像文件可以看到刚刚拉取的镜像默认保存在/var/lib/docker/目录

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

  • [root@localhost ~]# mkdir -pv /data/docker
    

  • (2)创建docker守护进程的配置文件

  • [root@localhost ~]# touch /etc/docker/dameon.json
    

    (3)在dameon.json输入以下内容

  • [root@localhost ~]# vim /etc/docker/dameon.json 
    {
    "graph":"/data/docker"
    }
    

    (4)重新加载docker的服务并重启docker

  • [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# systemctl restart docker.service

    (5)重新查看docker的镜像存储路径会发现路径变成了“/data/docker”

  • [root@localhost ~]# docker info | grep "Docker Root Dir"
     Docker Root Dir: /var/lib/docker
    

    三、docker镜像实战

  • 访问docker宫方的公有镜像仓库

  • 搜索镜像仓库中的一个镜像如mysql

  • [root@localhost ~]# docker search mysql
    

  • 2.默认拉取的是最新版本的镜像也可以在拉取时指定版本信息

  • [root@localhost ~]# docker pull mysql:5.7.19
    

    3.用拉取的mysql镜像创建一个容器运行mysql数据库

  • [root@localhost ~]# docker run --name my_mysql -p 2206:3306 \
    > -e MYSQL_ROOT_PASSWORD=123.123 \
    > -d mysql:5.7.19
    

    -p:2206表示宿主机的端口号:3306表示容器的端口号。这里是将容器的\n3306端口映射到了宿主机的2206端口。\n\n-e:传递一个变量给容器。这里通过变量MYSQL_ROOT_PASSWORD 设置\n了MySQL的root用户的密码为 123.123。

  • 4.进入MYSQL容器登陆时输入123.123密码,先查看mysql容器id

  • 先查看mysql容器id
    查看容器所有id号
    docker ps -a
    [root@localhost ~]# docker exec -it 84145e616ee7 /bin/bash
    root@84145e616ee7:/# mysql -u root -p
    

    在另外一台客户端上安装mysql并使用远程登陆

  • [root@localhost ~]# mysql -h 192.168.56.42 -P 2206 -u root -p
    Enter password: 
    

    输入密码后,使用命令查看当前数据库

  • MySQL [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值