当你docker有一定基础后, 很多时候你需要去部署相关服务与环境,这时你要不就要把镜像上传打docker镜像仓库中,但仓库再外网,很多时候国内服务器都是无法连接到该项目内,这时就需要其他方式,比如直接把本地镜像成.tar文件。 通过 docker load -i xx.tar 加载 Docker 镜像

镜像打包成.tar

使用docker save命令:运行docker save命令,后面跟上你想要打包的镜像名标签,以及输出文件的路径和名称
如果你没有指定标签,Docker会默认使用latest标签。

1
docker save -o <输出文件名>.tar <镜像名>:<标签>

例如,如果你想要打包名为myimage,标签为v1.0的镜像,并保存为myimage_v1.0.tar文件,你可以运行:

1
docker save -o myimage_v1.0.tar myimage:v1.0

加载镜像.tar

使用docker load命令:运行docker load命令,并通过-i--input选项指定.tar文件的路径。
如果你没有指定-i或–input,docker load会尝试从标准输入(stdin)读取数据,这通常不是你所想要的,除非你正在通过管道传递数据。

1
docker load -i <输入文件名>.tar

执行命令后,Docker会开始加载.tar文件,并在完成后显示加载的镜像的列表(尽管通常只显示一个镜像ID和状态信息,如“Loaded image: myimage:v1.0”)。

验证镜像:为了验证镜像是否已成功加载,你可以使用docker images命令来列出本地的所有镜像。你应该能在列表中看到刚刚加载的镜像。
运行镜像:一旦镜像被加载,你就可以像使用其他任何本地镜像一样来运行它了。例如,如果你加载了一个Web服务器镜像,你可以使用docker run命令来启动一个容器实例。

编写自动化部署命令

当你要环境安装级相关部署时,一个还好,但如果多个或者要项目更好的扩展,自动化部署时必要的。
下面举一个kkfileview自动化部署例子(在blog上有将相关内容可以去查看)

install.sh 内文件。 如果要运行: 去到文件所在目录,执行./install.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash

# 检查镜像是否已存在
if docker images | grep -q "keking/kkfileview:4.4.0"; then
echo "镜像 keking/kkfileview:4.4.0 已存在,无需重新加载"
else
# 加载 Docker 镜像并指定名称和标签
docker load -i kkfileview-4.4.0.tar
fi

# 检查容器是否已在运行
container_name="kkfileview"
result=$(docker inspect --format="{{.State.Running}}" $container_name 2> /dev/null)

#创建kkfileview文件目录
mkdir -p /home/.kkfileview
#配置文件放到对应位置
cp application.properties /home/.kkfileview/application.properties


if [ "$result" == "true" ]; then
echo "容器 kkfileview 已在运行,无需重新启动"
else
# 运行 kkfileview 容器并指定容器名称
docker run -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro --restart=always --name kkfileview -v /home/.kkfileview/application.properties:/opt/kkFileView-4.1.0/config/application.properties -d -p 8012:8012 keking/kkfileview:4.1.0
docker exec -it kkfileview bash -c "mv /opt/kkFileView-4.1.0/bin/kkFileView-4.1.0.jar /opt/kkFileView-4.1.0/bin/kkFileView-4.1.0.jar.bak"
docker cp ./kkFileView-4.4.0-SNAPSHOT.jar kkfileview:/opt/kkFileView-4.1.0/bin/kkFileView-4.1.0.jar
docker restart kkfileview
echo "容器 kkfileview 运行成功"
fi

一次性执行判断所有相关内容,让复杂安装简单化,使用性更高。

docker加速镜像源配置

mac 配置

安装了Docker for Mac 配置步骤:
在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧输入栏编辑 json 文件
将 对应的加速镜像源 加到"registry-mirrors"的数组里,点击 Apply & Restart按钮,等待Docker重启并应用配置的镜像加速器。

Ubuntu/CentOS 配置

配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["加速源地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Windows 配置

针对安装了Docker for Windows的可 配置步骤:
在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:

1
2
3
{
"registry-mirrors": ["加速源地址"]
}

编辑完成后点击 Apply 保存按钮,等待Docker重启并应用配置的镜像加速器。

注意:
Docker for Windows Docker Toolbox互不兼容,如果同时安装两者的话,需要使用hyperv的参数启动

1
docker-machine create --engine-registry-mirror=https://609ywpog.mirror.aliyuncs.com -d hyperv default

Docker for Windows 有两种运行模式,一种运行Windows相关容器,一种运行传统的Linux容器。同一时间只能选择一种模式运行。

加速镜像源

1
2
3
4
5
6
https://hub.uuuadc.top/
https://docker.anyhub.us.kg/
https://dockerhub.jobcher.com/
https://dockerhub.icu/
https://docker.ckyl.me/
https://docker.awsl9527.cn/

相关文档

Docker 命令参考文档
Dockerfile 镜像构建参考文档

avatar
懒觉猫先生
欢迎你们的到来!
关注我吧
最新文章
最新评论
正在加载中...
网站资讯
文章数目 :
177
已运行时间 :
本站总字数 :
120.4k
本站访客数 :
本站总访问量 :
最后更新时间 :