Linux系统下Docker的离线安装及清理

说明

本文只讲述docker离线安装及清理的步骤,关于docker本身的含义、技术特性等不再描述。

根据官网的介绍,在Linux系统中安装docker,可通过在线安装(centos的yum,ubuntu的apt-get等),离线rpm包安装,二进制文件安装等。基于一些环境因素的限制,不能通过在线安装,或rpm离线安装包依赖的问题,二进制文件安装docker显得简单且快速,本文介绍通过二进制文件安装docker。

离线包下载

在官网选择具体的版本,比如本文选择docker-18.09.5版本

mkdir -p ~/tools/docker

cd ~/tools/docker

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.5.tgz

用户组配置

# 新建用户组
sudo groupadd docker

# 将登录用户加入到docker用户组中
sudo usermod -aG docker $USER

# 更新用户组
sudo newgrp docker

安装包解压

cd ~/tools/docker

mkdir install-package

# 用于清理
tar -xf docker-18.09.5.tgz -C install-package --strip-components=1

# 解压安装至/usr/local/bin目录下
sudo tar -xf docker-18.09.5.tgz -C /usr/local/bin --strip-components=1

配置docker服务

# 修改docker默认存储路径
sudo mkdir -p ~/data/docker

配置docker.service

在Linux系统配置systemctl管理的服务信息:参考官网文档

配置/etc/systemd/system/docker.service文件后,需要执行systemctl daemon-reload重新加载后生效。

sudo cat > /etc/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
#BindsTo=containerd.service
After=network-online.target firewalld.service #containerd.service
Wants=network-online.target
#Requires=docker.socket

[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的启动可选参数,可通过dockerd --help查看
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3

# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s

# 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

# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this option.
TasksMax=infinity

# 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

[Install]
WantedBy=multi-user.target
EOF

配置daemon.json(可选)

daemon.json是docker.service中ExecStart启动参数的补充,以json格式定义,可通过/usr/local/bin/dockerd --help查看所有的参数

sudo cat >/etc/docker/daemon.json << EOF
{
  "storage-driver": "overlay2",
  "log-driver":"json-file",
  "log-opts":{
    "max-size":"50m",
    "max-file":"2"
  },
  "hosts": ["unix:///var/run/docker.sock"]
}
EOF

启动docker服务

# 因为在/etc/systemd/system/docker.service已经配置了docker.service
# 所以只需重新加载docker服务的配置文件
# 参考关于systemd命令的资料https://blog.51cto.com/xuding/1730952
sudo systemctl daemon-reload

# 通过systemctl启动docker服务
sudo systemctl start docker

# 设置为开机启动
sudo systemctl enable docker

# 通过可执行文件dockerd启动docker服务
# sudo dockerd \
# --exec-root=/var/run/docker \
# --data-root=/home/ubuntu/data/docker \
# &

# 验证开放2375端口
sudo netstat -lntp | grep dockerd

彻底清理docker

# 本文只针对于通过解压安装包的方式进行docker的清理和卸载
# 停止docker服务
sudo systemctl stop docker

# 杀死docker进程(为防止特殊情况下有残留的docker进程)
ps -ef | grep docker | awk '{print $2}' | xargs sudo kill -s 9

# 删除持久化Docker状态的根目录
# 通过docker info |grep 'Docker Root Dir:'命令查看
# 默认值/var/lib/docker,可通过dockerd命令的--data-root选项修改
sudo rm -rf /home/ubuntu/data/docker

# 删除执行状态文件的根目录
# 默认值/var/run/docker,可通过dockerd命令的--exec-root选项修改
sudo rm -rf /var/run/docker
# 删除默认监听的Unix域套接字,容器中的进程可以通过它与Docker守护进程进行通信
sudo rm -rf /var/run/docker.sock
# 删除docker守护进程PID文件
# 默认值/var/run/docker.pid,可通过dockerd命令的-p或--pidfile选项修改
sudo rm -rf /var/run/docker.pid

# 删除系统服务配置文件
sudo rm -rf /etc/systemd/system/docker.service
# 删除docker配置文件
# 默认值/etc/docker/daemon.json,可通过dockerd命令的--config-file选项修改
sudo rm -rf /etc/docker/daemon.json
# 删除自动生成的文件,tls相关配置:~/.docker/{ca.pem,cert.pem,key.pem}
sudo rm -rf ~/.docker/

# 清理可执行文件
ls ~/tools/docker/install-package |awk '{print "/usr/local/bin/"$1}'|xargs sudo rm -rf

参考资料

https://docs.docker.com/install/

https://download.docker.com/linux/static/stable/x86_64/

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux Docker离线安装部署需要以下步骤: 1. 在联网环境下,下载Docker安装包和相关依赖包,可以使用命令:sudo apt-get install docker.io 2. 将下载好的Docker安装包和相关依赖包复制到离线环境中的某个目录下。 3. 在离线环境中,使用命令:sudo dpkg -i 安装包名,安装Docker和相关依赖包。 4. 安装完成后,使用命令:sudo systemctl start docker,启动Docker服务。 5. 使用命令:sudo docker run hello-world,测试Docker是否安装成功。 6. 如果需要使用Docker镜像,可以将镜像文件复制到离线环境中,使用命令:sudo docker load -i 镜像文件名,加载镜像。 7. 使用命令:sudo docker run 镜像名,启动容器。 注意事项: 1. 离线环境中需要安装的Docker版本和相关依赖包版本需要与联网环境中下载的版本一致。 2. 离线环境中需要安装的Docker版本和相关依赖包版本需要与操作系统版本兼容。 3. 在离线环境中安装Docker和相关依赖包时,可能会遇到依赖关系问题,需要手动安装依赖包。 <br>### 回答2: Docker是一种容器化技术,可以在其中运行各种应用程序。如果要在没有网络连接的情况下安装和部署Docker,可以使用离线安装方式。下面是一些关于Linux Docker离线安装部署的步骤: 1. 获取Docker二进制文件 在一个连接互联网的计算机上,可以通过官方网站或镜像站点下载适用于Linux系统Docker二进制文件,然后将它们拷贝到没有网络连接的计算机上。 2. 安装DockerDocker二进制文件拷贝到需要安装Docker的计算机上后,通过sudo命令运行dockerd,启动Docker守护进程。然后使用docker命令测试Docker是否安装成功。 3. 配置Docker离线安装的情况下,可能需要为Docker配置所需的镜像、存储库和网络。可以通过以下步骤来完成配置: - 创建私有Docker注册表 - 拷贝所需的Docker镜像文件到Docker注册表 - 配置Docker客户端以使用私有注册表 - 配置Docker网络 4. 运行Docker容器 在安装和配置Docker后,可以通过Docker容器运行应用程序。可以使用Dockerfile创建Docker镜像,然后利用docker run命令对容器进行操作。运行Docker容器可以采用以下命令: - sudo docker run -itd --name container_name image:tag 其中,-itd表示以交互式和后台模式运行容器,--name指定容器名称,image:tag指定所需的Docker镜像文件。 总之,对于需要在没有网络连接的计算机上安装和部署Docker的用户,可以采用离线安装方式。通过拷贝Docker二进制文件、安装Docker、配置Docker和运行Docker容器,可以轻松地完成Linux Docker离线安装部署的任务。 <br>### 回答3: Docker是一种快速创建、部署和运行应用程序的开源容器化平台,它允许用户在隔离的容器中运行应用程序。Docker离线安装部署可以在没有网络连接或网络连接不稳定的情况下进行安装,而且具有快速、简便、可重复性好等优点。以下是基于Linux操作系统docker离线安装部署流程: 1. 下载Docker离线安装包,比如在Docker官网上下载一个tar包。 2. 构建一个离线安装镜像,将下载的离线安装包复制到镜像中。 3. 上传镜像到目标服务器。可以使用FTP、rsync等工具将镜像复制到目标服务器。也可以借助U盘、光盘等存储介质进行传输。 4. 在目标服务器上加载镜像,使用如下命令进行加载: docker load -i /path/to/your/image.tar 5. 安装完成后,使用如下命令查看安装的版本: docker version 6. 启动Docker服务,使用如下命令启动Docker: systemctl start docker 7. 确认Docker是否已经成功安装,在终端上输入以下命令,若能正常输出,则表明Docker已经可以正常使用: docker run hello-world 8. 如果需要安装其他Docker镜像,可以使用docker pull命令进行下载。如: docker pull centos 到这里,Docker离线安装部署就已经完成了。值得注意的是,在没有网络连接的情况下无法通过Docker Hub下载和安装Docker镜像,所以需要在离线环境下构建自己的Docker镜像进行部署使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值