Docker镜像
1. 什么是Docker的镜像
Docker的镜像是一个模板,或者说其是一个只读文件。在该模板中包含应用和应用运行 时所需要的依赖环境。Docker的镜像采用的是分层的文件系统,每一次对镜像的修改将 以“读写层”的形式增加到原来的只读文件的模板上。
Docker 默认的镜像存储路径是“/var/lib/docker",也可以自定义其他路径。
2. 使用Docker默认的镜像存储路径
通过执行以下语句可以得知Docker镜像的存储路径,可以看出在默认情况下,Docker将拉取的镜像存储在 "/var/lib/docker"目录下
[root@localhost ~]# docker info | grep "Docker Root Dir"
2.1 自定义Docker的镜像存储路径
在实际生产环境中,Docker默认的镜像存储路径往往不能满足磁盘空间大小的要求。可以根据以下步骤来修改这个存储路径。
创建新的镜像路径 “/data/docker” ,该路径用于保存Docker的镜像文件
[root@localhost ~]# mkdir -p /data/docer
创建Docker守护进程的配置文件
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# vim daemon.json
在 deamon.json 文件中输入以下内容
{
"graph": "/data/docker"
}
重新加载Docker的服务,并重启Docker
[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker.service
重新查看Docker的镜像存储路径,会发现路径变成了“/data/docker”
存储Docker 镜像的地方叫作镜像仓库。镜像仓库分为公有镜像仓库和私有镜像仓库。下面来介绍如何使用Docker 公有镜像仓库。
3.1访问 Docker官方的公有镜像仓库
Docker官方提供了一个公有镜像仓库Docker Hub。在通过Docker客户端操作 Docker时,如果没有指定镜像仓库的地址,则默认使用该镜像仓库的地址。
主页网址:https://hub.docker.com
3.2使用Docker Hub
使用“docker search”命令搜索镜像仓库中的一个镜像,如 MySQL.
[root@localhost docker]# docker search mysql
使用“docker search”命令拉取 MySQL的镜像。如果在拉取镜像时没有指定版本,则默认拉取最新版本的镜像。也可以在拉取时指定版本信息,例如拉取 mysql:5.7.19
[root@localhost docker]# docker pull mysql:5.7.19
用拉取的MySQL镜像创建一个容器,用来运行MySQL数据库
[root@localhost ~]# docker run --name mysql -p 2206:3306 \
> -e MYSQL_ROOT_PASSWORD=123.123 \
> -d mysql:5.7.19
其中的参数说明如下。
-p:2206表示宿主机的端口号:3306表示容器的端口号。这里是将容器的
3306端口映射到了宿主机的2206端口。
-e:传递一个变量给容器。这里通过变量MYSQL_ROOT_PASSWORD 设置
了MySQL的root用户的密码为 123.123。
查看容器的信息,这里的容器ID
使用Docker命令进入容器
[root@localhost ~]# docker exec -it 91f263b39a23 /bin/bash
其中,-it 表示启动一个虚拟的标准输入终端
登录MySQL数据库时输入密码”123.123“
在MySQL的命令行中执行以下命令则允许 root用户远程登录
mysql> grant all privileges on *.* to root@"%" identified by "123.123" -> with grant option;
现在就可以使用MySOL客户端登录,这时就可以成功访问Docker 容器中的MySQL 数据库了
图片转存中…(img-SiV4RAbn-1700627511649)]\屏幕截图 2023-11-22 122128.png)
现在就可以使用MySOL客户端登录,这时就可以成功访问Docker 容器中的MySQL 数据库了