零、背景
linux虚拟机上centos系统使用非图形的命令行界面(software selection 选“Minimal Install”)。
ip addr看ip
一、Docker
安装docker并开机自启
-
卸载旧版:
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
设置仓库:
(安装所需的软件包:yum-config-manager、device-mapper-persistent-data、lvm2。)
$ sudo yum install -y yum-utils
选择地址源:(此处阿里云)
$ sudo yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装 docker和docker-cli:
$ sudo yum install docker-ce docker-ce-cli containerd.io
-
启动docker $ sudo systemctl start docker
#通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
-
docker开机自启
$ sudo systemctl enable docker
配置Docker使用第三方镜像源获取镜像
-
编辑docker的配置文件
$ sudo vi /etc/docker/daemon.json
-
获取第三方镜像源(我用的阿里云,官网为每个用户生成自己的加速地址,在容器镜像服务页面找寻)并配置
{ "registry-mirrors": ["https://your-mirror-address.mirror.aliyuncs.com"] }
(写自己的地址)(i后可写,:wq保存回车)
-
重启docker
$ sudo systemctl restart docker
创建并挂载一个由 LVM 创建的、格式化为 XFS、并且可以通过 fstab 自动挂载的新分区
-
列出磁盘和分区。决定在哪个磁盘上创建新分区。
$ fdisk -l
创建可作物理卷的分区(大失败)(以下两步不要做!!是错误示范)-
我在 /dev/sda (这里sda表示总磁盘)磁盘上创建一个新的分区《###导致原本磁盘被覆盖,刷机重来###》 $ parted /dev/------错误示范-------sda mkpart primary ext3 0% 100% -
在原有被创好的sda分区后再创新区,默认为sda4(手动大小1GB)《###内存不足###》 $ parted /dev/s-------错误示范-------da mkpart primary ext3 41943040s 44040191s
-
-
安装LVM(CentOS)
$ sudo yum install lvm2
#开机自启
$ sudo systemctl enable --now lvm2-monitor.service
#列出磁盘与分区,确认安装
$ sudo lvmdiskscan
-
虚拟机关机,用vm新增磁盘(我是一个10G的sdb)
-
创建物理卷
$ pvcreate /dev/sdb
-
创建卷组。卷组名称为vgdata1
$ vgcreate vgdata1 /dev/sdb
-
创建逻辑卷。名为lvdata的逻辑卷,使用全部可用空间
$ lvcreate -l 100%FREE -n lvdata vgdata1
-
格式化逻辑卷为XFS文件系统
$ mkfs.xfs /dev/vgdata/lvdata
-
创建挂载点并挂载逻辑卷
$ mkdir /data $ mount /dev/vgdata1/lvdata /data
-
编辑
/etc/fstab
以实现开机自动挂载: 打开/etc/fstab
文件$ vi /etc/fstab
输入i表示可插入并在末尾添加以下内容:
/dev/vgdata1/lvdata /data xfs defaults 0 0
esc 再
:wq
保存文件后,逻辑卷在系统启动时将自动挂载到/data
目录。
配置 docker 数据存储位置到上面说的那个目录
-
停止docker服务
$ sudo systemctl stop docker
-
配置docker的数据目录(这里刚刚命名为data的目录改名为docker_data了)
$ sudo vi /etc/docker/daemon.json
{ "data-root": "/mnt/docker_data" }
-
移动现有的 Docker 数据到新位置
$ sudo rsync -avzh /var/lib/docker/ /mnt/docker_data
-
重启docker
$ sudo systemctl start docker
-
验证Docker是否使用了新的数据目录
$ docker info | grep 'Docker Root Dir'
输出应该显示
Docker Root Dir: /mnt/docker_data
,这表示 Docker 已经成功配置为使用新的数据存储位置。
-
如何更改已经挂载的逻辑卷的名字(卸载,改名,再挂载)
$ sudo umount /data
$ sudo mv /data /docker_data
$ sudo mount /dev/mapper/vgdata1-lvdata /docker_data