镜像
Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下载
(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库
镜像相关操作:
6.1 配置加速器
国内从Docker Hub下载镜像速度很慢,我们可以配置阿里云专属加速器来解决
6.1.1 浏览器访问并登陆阿里云(淘宝或支付宝帐号登陆也可以)
https://www.aliyun.com/
6.1.2 登陆后,进入阿里云“控制台”,搜索“容器镜像服务”,然后点击菜单:“镜像中心”-->“镜像加速器”
最后,将容器右边的“加速器地址”复制下来即可
https://oyi1xr7k.mirror.aliyuncs.com(这里是我的加速器地址)
6.1.3 设置容器镜像服务的密码(可选)
容器镜像服务(Container Registry)提供多地域镜像托管能力,稳定的国内外镜像构建服务,便捷的镜像授权功能,
方便用户进行镜像全生命周期管理。在开通流程中,您需要设置独立于账号密码的Registry登录密码,便于镜像的上传、下载。
注1:此步骤为可选,如果需要使用阿里云来管理你的镜像 ,此步骤必须设置
6.1.4 修改docker相关配置
vi /etc/docker/daemon.json
添加下面内容(地址替换成上面的加速器地址):
{
"registry-mirrors":["你的阿里云专属加速器地址"]
}
例如:
{"registry-mirrors":["https://lm5ncbzq.mirror.aliyuncs.com"]}
注:在这里可以先将registry-mirrors换成自己的阿里云专属加速器地址后,在复制到工具里面去执行(方便)
6.1.5 重新加载daemon
systemctl daemon-reload
6.1.6 重启docker
systemctl restart docker
6.2 搜索镜像
$ docker search 镜像名称
例如:docker search mysql
6.3 下载镜像
docker pull 镜像名
例如, 获取一个 centos 系统的基础镜像可以使用如下的命令
## 未指定版本一般会使用latest(最新的)版本
$ docker pull centos
## 或者直接指定版本
$ docker pull centos:版本号
6.4 查看宿主机上的镜像
$ docker images
注1:查看image位置
## /var/lib/docker为docker默认安装目录
cd /var/lib/docker/containers
ls
6.5 删除镜像
$ docker rmi 镜像ID/标签
例如:
$ docker rmi 2ca708c1c9cc
$ docker rmi centos:latest 或 docker rmi centos:版本号
注1:如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像
$ docker rmi -f centos:版本号
-f, -force: 强制删除镜像, 即使有容器依赖它
注意, 通常并不推荐使用-f参数来强制删除一个存在容器依赖的镜像。 正确的做法是,
先删除依赖该镜像的所有容器, 再来删除镜像
## 下面的内容后续再讲
6.6 保存镜像
$ docker commit -m="description about images" --author="author" {container_id} {repository/images_name:tag}
6.7 推送镜像到代码仓库(以阿里云docker平台为例)
$ docker login --username=your_username registry.cn-beijing.aliyuncs.com
$ docker tag [ImageId] registry.cn-beijing.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]
$ docker push registry.cn-beijing.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]
6.8 使用Dockerfile创建新的镜像(注意:末尾有一个点,表示当前路径)
$ docker build -t "repository/images_name:tag" .