docker离线安装并导入镜像

本文介绍了如何在无法连接互联网的内网环境中离线安装Docker及所需镜像的方法。包括下载安装文件、配置systemd service、导入离线镜像等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际项目开发过程中,客户环境大多是全内网环境,无法连接互联网。这样docker就不能yum在线联网安装,所需要的镜像也不能在线pull下载。这时就需要进行离线安装docker及镜像。

1、下载docker安装文件

离线安装docker,需要下载docker的安装文件。
地址:https://download.docker.com/linux/static/stable/x86_64/
我下的是最新的版本[docker-19.03.6.tgz],文件不大,只有60M左右。

2、离线docker安装

将安装包文件上传到服务器目录并解压。

[root@iZbp13sno1lc2yxlhjc4b3Z ~]#tar -xvf docker-19.03.6.tar

将解压出来的docker文件内容移动到 /usr/bin/ 目录下

[root@iZbp13sno1lc2yxlhjc4b3Z ~]#cp docker/* /usr/bin/

将docker注册为service,在/etc/systemd/system目录下创建docker.service文件,并配置如下内容保存。

[root@iZbp13sno1lc2yxlhjc4b3Z ~]#vim /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

添加文件权限并启动docker,执行如下命令:

chmod +x /etc/systemd/system/docker.service                      #添加文件权限
systemctl daemon-reload                                                       #重载unit配置文件
systemctl start docker                                                            #启动Docker
systemctl enable docker.service                                            #设置开机自启

验证docker安装是否成功:

systemctl status docker                                                         #查看Docker状态
docker -v                                                                                #查看Docker版本

Docker离线安装好后,下面我们把镜像导入到Docker。

3、离线镜像文件导入
内网环境没法pull镜像,但是docker本身可以将已有的镜像导出成tar文件,并且可以再次导入到docker,利用这一点,可以实现离线镜像文件的下载。
找一台可以联网的docker机器,并pull下载需要的镜像文件
然后使用如下命令将镜像文件导出:

docker save java:8 -o java.tar  #将java 8的镜像导出成tar文件

将tar文件上传到内网docker服务器,使用如下命令导入镜像文件:

docker load -i java.tar

查看导入的镜像文件:

[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
java                                                   8                   d23bdf5b1b1b        3 years ago         643MB

OK,通过上述方式,实现了内网环境下docker的安装和镜像文件下载。后续我们就可以愉快的使用docker来部署管理我们的应用了。

### 如何在离线环境中安装 Kafka Docker 镜像 #### 准备工作 为了在离线环境中成功部署Kafka Docker镜像,需提前完成如下准备: - **获取所需文件**:在线环境下准备好所有必需的资源文件。这通常包括目标版本的Kafka镜像以及任何依赖项。 - **传输到离线环境**:通过安全的方式将下载好的镜像和其他必要组件传送到目标机器。 #### 导出与导入镜像 利用 `docker save` 和 `docker load` 命令来处理镜像的导出和导入操作。 ##### 导出镜像至tar包 ```bash docker pull wurstmeister/kafka:latest # 在联网设备上拉取最新版kafka镜像 docker save -o kafka_latest.tar wurstmeister/kafka:latest # 将该镜像保存成名为kafka_latest.tar的压缩包 ``` ##### 移动 tar 文件加载入本地仓库 一旦上述步骤完成后,需要把生成的 `.tar` 文件复制到目标离线服务器,执行下面指令将其恢复为可用状态: ```bash docker load -i /path/to/kafka_latest.tar # 加载之前保存下来的kafka镜像 ``` #### 启动容器实例 当一切就绪之后,在离线模式下可以通过常规方式启动新的Kafka服务端口映射等配置可根据实际需求调整: ```yaml version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka depends_on: - zookeeper ports: - "9092:9092" environment: KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 ``` 使用 `docker-compose up -d` 来运行此组合定义的服务集[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值