一、Linux各个namespace的作用
概述而言,namespace是Linux系统的底层概念,在内核层实现,即有一些不同类型的命名空间被部署在核内,各个docker容器运行在同一个docker主进程并且共用同一个宿主机系统内核,各docker容器运行在宿主机的用户空间,每个容器都要有类似于虚拟机一样的相互隔离的运行空间,但是容器技术是在一个进程内实现运行指定服务的运行环境,并且还可以保护宿主机内核不受其他进程的干扰和影响,如文件系统空间、网络空间、进程空间等。
目前namespace主要有以下8种分类:
隔离类型 | 功能 | 系统调用参数 |
MNT Namespace(mount)
|
提供磁盘挂载点和文件系统的隔离能力
|
CLONE_NEWNS
|
IPC Namespace(Inter-Process Communication)
|
提供进程间通信的隔离能力
|
CLONE_NEWIPC
|
UTS Namespace(UNIX Timesharing System)
|
提供主机名隔离能力
|
CLONE_NEWUTS
|
PID Namespace(Process Identification)
| 提供进程隔离能力 | CLONE_NEWPID |
Net Namespace(network)
| 提供网络隔离能力 | CLONE_NEWUSER |
User Namespace(user)
| 提供用户隔离能力 |
CLONE_NEWUSER
|
Time Namespace
| 提供时间隔离能力 | CLONE_NEWTIME |
Syslog Namespace
| 提供syslog隔离能力 | |
Control group (cgroup) Namespace
| 提供进程所属控制组的隔离能力 |
二、使用 apt/yum/ 二进制安装指定版本的 Docker
本人使用的小米笔记本配置为8核16线程,每台虚拟机设置为4个核心,每个核心4个线程。此处省略使用vmware安装ubuntu虚拟机过程,我使用的是版本。注意安装成功以后,需要使用sudo passwd root命令设置root口令,同时输入"vi /etc/ssh/sshd_config", 将PermitRootLogin 设置为 yes,
允许xshell工具使用root用户远程访问虚拟机。
本次安装docker一共尝试了两种安装方式:
(1)使用apt方式在ubuntu上安装docker
#尝试卸载可能存在的旧版本(一般最小化安装ubuntu时没有旧版本)
sudo apt-get remove docker docker-engine docker-ce docker.io
#更新软件包信息
apt update
#安装必要的前置组件,以使apt可以通过https访问存储库
apt -y install -y apt-transport-https ca-certificates curl software-properties-common
#添加docker官方GPC密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#或者添加阿里云官方GPC密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#设置稳定版本docker-ce仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#或者使用阿里云官方速度快docker-ce仓库
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#再次更新apt软件包仓库信息
apt -y update
#查看可用版本
apt-cache madison docker-ce
#显示内容如下:
"
docker-ce | 5:20.10.18~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages
"#安装指定版本apt -y install docker-ce=5:20.10.18~3-0~ubuntu-jammy docker-ce-cli=5:20.10.18~3-0~ubuntu-jammy containerd.io#输入docker --version显示正常
“Docker version 20.10.18, build b40c2f6”
#输入docker info验证显示正常“Client......Live Restore Enabled:false”
#重新启动docker服务,设置docker为开机自动启动
systemctl enable containerd.service
systemctl restart containerd.service
systemctl enable docker.servicesystemctl restart docker.service
systemctl enable docker.socketsystemctl restart docker.socket
#输入docker info验证
WARNING:No swap limit support
#按照辅导老师的方法,使用sed工具修改/etc/default.grub
三、熟练使用docker数据卷