当前位置: 首页 > article >正文

【监控体系搭建一】Docker安装与使用

前言

本文主要记录:内网环境下,基于Linux系统,离线安装Docker过程。外网安装docker较简单,也有很多文章,有需要的可以自行搜索相应的文章。

过程

一、安装前准备工作

1. 系统要求

  1. 首先需要确定 CentOS7 的内核版本号,因为 docker 安装要求 Linux 内核版本在 3.10 及以上。查看内核版本号:
uname -r
# CentOS7 内核版本号为:3.10.0-957.5.1.el7.x86_64
  1. 查看服务器系统版本:
cat /etc/redhat-release
# CentOS Linux release 7.6.1810 (Core) 

2. 下载Docker

Docker官网:Docker: Accelerated Container Application Development
Docker引擎安装说明:在 CentOS 上安装 Docker 引擎 |Docker 文档
Docker二进制安装说明:从二进制文件安装 Docker 引擎 |Docker 文档
因为这里要使用离线安装Docker,所以为二进制安装。需要下载二进制文件。下载地址:https://download.docker.com/linux/static/stable/x86_64/
在这里插入图片描述
windows上选择版本进行下载(我安装的是26.1.3),下载成功后,将压缩包上传至Linux服务器,然后解压docker包。

tar -zxvf docker-26.1.3.tgz

二、开始安装

1. 安装Docker

  1. 将解压出来的docker文件内容拷贝或者移动到 /usr/bin/目录下
cp docker/* /usr/bin/

然后就可以使用 docker -v 或者 docker info 命令验证是否可以输出docker信息了。因为没有开启守护进程,docker 其他命令还不能使用。所以需要编写docker.service 文件加入Linux服务当中并开启守护进程。

  1. 编辑文件docker.service
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 -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536
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

如果需要开启远程服务ExecStart属性修改为以下命令:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536
# -H tcp://0.0.0.0:2375 开启远程连接命令
  1. 添加文件可执行权限
chmod +x /etc/systemd/system/docker.service
  1. 启动docker并设置开机自启
#加载 daemon 服务
systemctl daemon-reload
#启动docker命令
systemctl start docker
#设置开机自启命令
systemctl enable docker
#查看docker版本命令
docker version

此时出现如下信息,则代表Docker安装成功了。
在这里插入图片描述

2. 配置镜像源

  1. 使用vim打开配置文件
vim /etc/docker/daemon.json

若没有配置文件的话自己新建一下
新建文件夹

mkdir docker

新建文件

touch daemon.json
  1. 配置镜像源
{
  "registry-mirrors": ["https://ejes884z.mirror.aliyuncs.com"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"1g", "max-file":"3"},
  "live-restore": true
}

registry-mirrors:个人镜像源地址, 如果有多个仓库, 在相应的列表里增加即可。
log-driver log-opts:全局配置容器日志大小,如果不配置没有限制大小,后面有可能会导致磁盘崩盘
live-restore:更新daemon.json配置文件时,自动加载配置,不用重新启动Docker

  1. 配置成功后,重新加载 daemon 服务
systemctl daemon-reload
  1. 重新启动 docker 服务
systemctl restart docker
  1. 若觉得执行两次比较麻烦,可以直接复制如下命令执行
systemctl daemon-reload && systemctl restart docker

3. Docker服务相关命令

  1. 重新加载配置文件
systemctl daemon-reload
  1. 启动 docker 服务
systemctl start docker
  1. 查看 docker 服务的运行状态
systemctl status docker
  1. 停止运行
systemctl stop docker
  1. 重新启动
systemctl restart docker
  1. 将 docker 服务设置为开机自动启动
systemctl enable docker
  1. 禁用开机自动启动
systemctl disabled docker
  1. 查看docker开机自动启动状态 enabled:开启, disabled:关闭
systemctl is-enabled docker.service
  1. 查看 docker 版本号
docker -v
# 或者
docker version
  1. Docker启动所有容器
docker start $(docker ps -a -q)

导出和导入镜像 首先在可以连接网络的服务器上面获取相关软件镜像,然后通过 save 和 load
命令导出和导入镜像。由于导入的镜像没有镜像名称和 tag 版本号,需要使用 docker tag 命令 修改导入的镜像命令。

  1. docker导出镜像:
docker save 99ee9af2b6b1 > redis.tar # 99ee9af2b6b1 镜像ID
  1. docker导入镜像:
docker load < redis.tar
  1. docker修改镜像标签名称:
 docker tag 99ee9af2b6b1 redis:3.2.0  #99ee9af2b6b1 镜像ID  镜像名称:版本号

http://www.kler.cn/a/320756.html

相关文章:

  • 螺旋矩阵II(leetcode 59)
  • MSTP知识点
  • SOP搭建:企业标准化操作程序构建与实施指南
  • 游戏引擎学习第13天
  • g++与gdb简单学习
  • PCHMI串口接收实验
  • 万界星空科技铜拉丝行业MES系统,实现智能化转型
  • Prometheus使用Pushgateway推送数据
  • 【数据结构】栈和队列(Stack Queue)
  • 统信服务器操作系统ade版【iostat】命令详解
  • LeetCode 136. 只出现一次的数字
  • 三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)
  • Kafka集群扩容(新增一台kafka节点)
  • Could not load library libcudnn_cnn_train.so.8 问题及(非常简单)解决方案
  • 线阵相机的参数选型计算
  • vue.config.js devServer中changeOrigin的作用
  • VS Code实现flutter多语言(官方推荐Intl)
  • Golang | Leetcode Golang题解之第421题数组中两个数的最大异或值
  • 嵌入式硬件工程师与嵌入式软件工程师的区别(详细版)
  • 关于 ReentrantLock 中锁 lock() 和解锁 unlock() 的底层原理浅析
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【文件系统】上
  • NLP 序列标注任务核心梳理
  • 《C++中的神秘利器——类型萃取(Type Traits)深度解析》
  • Android ImageView支持每个角的不同半径
  • LVS-DR实战案例,实现四层负载均衡
  • 利用探空站数据(怀俄明和IGRA)和ERA5计算ZTD、ZHD和ZWD