docker离线安装和部署

本文介绍如何在没有网络连接的情况下安装Docker,并提供了详细的步骤来配置Docker服务,启动Docker,以及验证安装是否成功。此外,还介绍了如何导出和导入Docker镜像,并解决了内部容器访问宿主机时出现的问题。

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

离线安装dokcer

1、下载docker安装文件

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

2.解压后 复制到binl目录


gunzip docker-19.03.6.tgz && tar -xvf docker-19.03.6.tar && cp docker/* /usr/bin/

3.将docker注册为service,在/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

4.启动docker

chmod +x /etc/systemd/system/docker.service &&\
systemctl daemon-reload  &&\
systemctl start docker   &&\     
systemctl enable docker.service    

5.验证docker是否安装成功

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

镜像导入

1导出镜像

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

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

docker load -i mysq.5.7.tar

可能出现的问题

内部容器访问宿主机时出现 docker no route to host

解决步骤

配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
停止NetworkManager(检测网络、自动连接网络的程序)服务
systemctl stop NetworkManager.service
修改docker网络接口为内部区域(永久)
firewall-cmd --permanent --zone=trusted --change-interface=docker0
启动NetworkManager(检测网络、自动连接网络的程序)服务
systemctl start NetworkManager.service
配置docker0服务到受信任连接
nmcli connection modify docker0 connection.zone trusted
重启docker服务
systemctl restart docker.service

复制下面的命令

nmcli connection modify docker0 connection.zone trusted &\
systemctl stop NetworkManager.service &\
firewall-cmd --permanent --zone=trusted --change-interface=docker0 &\
systemctl start NetworkManager.service &\
nmcli connection modify docker0 connection.zone trusted &\
systemctl restart docker.service

### Docker 离线环境下安装部署各类中间件方法 #### 准备工作 为了在无网络环境中成功安装配置 Docker 及其相关组件,需提前准备必要的文件包。这包括但不限于 Docker 的二进制文件、`docker-compose` 文件及其依赖项。 #### 安装 Docker Docker Compose 对于离线环境中的 Docker `docker-compose` 的安装,建议先在一个有互联网访问权限的机器上下载所需的安装脚本或二进制文件,并将其传输到目标服务器。具体操作如下: - 下载适用于 Linux 发行版的 Docker CE 版本并保存为 `.tgz` 压缩包; - 将此压缩包复制至目标主机并通过命令行解压并设置路径以便全局调用; - 对于 `docker-compose` ,同样需要获取对应平台版本的可执行文件并放置于系统的 `$PATH` 路径下[^1]。 ```bash tar -xzvf docker.tgz sudo cp docker/* /usr/local/bin/ chmod +x /usr/local/bin/docker-compose ``` #### 导入镜像 针对特定的应用程序如 Nginx 或 Tomcat,在源机上拉取官方仓库里的最新稳定版镜像后导出成 tar 格式的存档文件再传送到目的端导入即可完成整个过程[^3]。 ```bash # 在联网设备上执行 docker pull tomcat:latest docker save -o tomcat-latest.tar tomcat:latest # 移动 tar 文件到离线设备后运行下面指令加载图像 sudo docker load -i tomcat-latest.tar ``` #### 构建容器服务 一旦所有必需的基础结构都已就绪,则可以根据实际需求编写相应的 YAML 配置文档来定义各个微服务之间的关系及参数设定;最后利用 `docker-compose up` 来启动项目集群[^2]。 ```yaml version: '3' services: webapp: image: "tomcat" ports: - "8080:8080" ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值