0
点赞
收藏
分享

微信扫一扫

Docker运维技术基本实践

梅梅的时光 2022-03-17 阅读 66

文章目录

Docker技术简介

背景分析

现阶段的软件技术水平已经真正的进入到了云计算时代,我们的应用现在也正在逐步的部署到云端,部署到云端的服务需要相互隔离,让每个服务都运行在独立的容器中,而 Docker 正是当下最主流的容器化技术。

Docker 核心对象

镜像(Image)

Docker 镜像可以看成是磁盘上特殊的文件系统(https://hub.docker.com/),镜像打包了应用的运行环境以及应用程序,是静态的。可以通过 Docker 启动这个镜像,进而将镜像中的程序在一个容器中启动运行起来。在 Docker 镜像中,操作系统是高度精简的,镜像中的操作系统还不包含内核,容器都是共享所在的宿主机的内核。所以有时会说容器仅包含必要的操作系统(通常只有操作系统文件和文件系统对象),容器中查看到的 Linux 内核版本与宿主机一致。假如现在理解镜像有些抽象,可以暂时先将其理解为一个安装程序。

容器(Container)

Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。容器是轻量级的,它不需要管理程序的额外负担,而是直接在主机的内核中运行。我们常常说使用镜像打包应用程序,使用 Docker 发布、部署应用程序。当你的应用成功在 Docker 上运行时,这个应用就是容器化应用。我们还可以将通过 Docker 启动的容器看成是操作系统中的一个进程。

Docker 应用架构分析

架构图

Docker 是一种Client/Server架构的应用程序,Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以 在同一系统上运行,或者您可以将Docker客户端连接到远程Docker守护程序。如图所示(参考docker 官网https://docs.docker.com/get-started/overview/)。

在这里插入图片描述

  1. Docker Client是安装完 Docker 之后,直接使用的 docker命令。
  2. Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
  3. Docker Daemon是docker的后台守护进程,侦听并处理Docker客户端命令,管理Docker对象,例如镜像,容器,网络和卷。
  4. Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images(本地镜像仓库)中.
  5. Images 是Docker本地的镜像仓库,可以通过docker images查看镜像文件。

Docker运行机制

1)客户端将指令发送给docker daemon
2)docker daemon 先检查本地images中有没有相关的镜像
3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地

  1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  2. 利用镜像创建并启动一个容器
  3. 分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层
  4. 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
  5. 从地址池配置一个 ip 地址给容器
  6. 执行用户指定的应用程序

Docker安装

准备工作
第一步:准备CentOS,本次以CentOS7为例进行安装。
第二步:基于vmvare打开CentOS
第三步:克隆CentOS(选择链接克隆-更省空间),命名为CentOS7964-docker(名字随意)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启虚拟机系统
第一步:启动虚拟机,默认账号密码为root/root
在这里插入图片描述
第二步:在系统中右键,打开终端,通过ifconfig指令检查网络,

[root@centos7964 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.126.129  netmask 255.255.255.0  broadcast 192.168.126.255
        inet6 fe80::20c:29ff:fed5:bd15  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d5:bd:15  txqueuelen 1000  (Ethernet)
        RX packets 160  bytes 19289 (18.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 187  bytes 17007 (16.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:c3:96:eb  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

第三步:通过MobaXterm工具链接虚拟机系统
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

离线安装Docker系统

按如下步骤自己下载,然后将资源放到一个目录安装
第一步:下载docker离线包

也可以从https://download.docker.com/linux/static/stable/网址下载指定版本
第二步:下载离线安装工具

第三步:将下载好的资源放在一个目录,例如:
在这里插入图片描述
第四步:在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录)
在这里插入图片描述
第五步:执行安装操作

# 进入/root/setup/docker 文件夹
cd /root/setup/docker

# 为 install.sh添加执行权限
chmod +x install.sh

# 安装
./install.sh -f docker-20.10.6.tgz

安装成功后,会出现如下信息:

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
docker 20.10.6 install success!

第六步:安装成功以后,检查安装状态

docker info

Docker服务基本操作

查看Docker状态

查看docker是否启动了,是否是运行状态.

systemctl status docker

停止docker服务

systemctl stop docker

启动docker服务

 systemctl start docker

设置Docker开机自启

systemctl enable docker

禁用Docker开机自启

systemctl disable docker

重新启动Docker服务

 systemctl restart docker

查看Docker信息

docker info

Docker镜像加速

由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json

下面命令直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

注意:在执行如上指令时,保证你的登录用户为root管理员用户,并且设置好以后重启docker服务.

举报

相关推荐

0 条评论