CentOS-7安装docker

迷南。 2022-03-26 09:44 406阅读 0赞

系统要求

docker -ce要求CentOS-7。

注意:安装docker时必须联网。

卸载旧版

sudo yum remove docker docker-common docker-selinux docker-engine docker-io

如果 yum 报告未安装任何这些软件包,这表示情况正常。

将保留 /var/lib/docker/ 的内容,包括镜像、容器、存储卷和网络。

添加安装源

sudo yum-config-manager —add-repo
https://download.docker.com/linux/centos/docker-ce.repo

在线安装docker-ce

# 安装所需的软件包

yum-utils 提供了 yum-config-manager 实用程序,并且 devicemapper 存储驱动需要device-mapper-persistent-data 和 lvm2。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

更新 yum 软件包索引

sudo yum makecache fast

列出可用版本

sudo yum list docker-ce.x86_64 —showduplicates | sort -r

安装最新版本的 Docker CE

sudo yum install -y docker-ce

离线安装docker-ce

下载地址

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

安装包

docker-ce-18.06.1.ce-3.el7.x86_64.rpm

依赖包

audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm
setools-libs-3.3.8-2.el7.x86_64.rpm
python-IPy-0.75-6.el7.noarch.rpm
policycoreutils-python-2.5-22.el7.x86_64.rpm
libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
libsemanage-python-2.5-11.el7.x86_64.rpm
libseccomp-2.3.1-3.el7.x86_64.rpm
libcgroup-0.41-15.el7.x86_64.rpm
checkpolicy-2.5-6.el7.x86_64.rpm

安装docker-ce

sudo rpm -ivh *.rpm

重载docker配置

sudo systemctl daemon-reload

启动/停止/查看docker

sudo systemctl start docker

sudo systemctl stop docker

sudo systemctl status docker

设置开机启动

sudo systemctl enable docker

查看docker

sudo docker info

显示内容:

Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.06.1-ce
Storage Driver: devicemapper
Pool Name: docker-thinpool
Pool Blocksize: 524.3kB
Base Device Size: 10.74GB
Backing Filesystem: xfs
Udev Sync Supported: true
Data Space Used: 19.92MB
Data Space Total: 20.4GB
Data Space Available: 20.38GB
Metadata Space Used: 61.44kB
Metadata Space Total: 213.9MB
Metadata Space Available: 213.8MB
Thin Pool Minimum Free Space: 2.039GB
Deferred Removal Enabled: true
Deferred Deletion Enabled: true
Deferred Deleted Device Count: 0
Library Version: 1.02.146-RHEL7 (2018-01-22)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk
syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-862.11.6.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.779GiB
Name: iot-node1
ID: T3S6:U2CW:LV6N:XD6S:UKLE:6OOH:43QX:JUWQ:347L:Y2UG:64G2:IA2D
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Cluster Store: zk://iot-node1:2181,iot-node2:2181
Cluster Advertise: 192.168.245.148:2375
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

其他

docker info报错:WARN:docker bridge-nf-call-iptables is disabled,

WARN:docker bridge-nf-call-ip6tables is disabled

解决方法:

sudo vi /etc/sysctl.conf

添加一下内容:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1

然后重启宿主机

配置docker使用overlay2

停止docker

sudo systemctl stop docker

清空数据,如果有啥需要的请自己备份

sudo rm -rf /var/lib/docker/*

如果/etc/docker文件夹不存在,需要先创建文件夹

sudo mkdir /etc/docker

修改daemon.json配置文件

sudo vi /etc/docker/daemon.json

daemon.json内容:

{
“storage-driver”: “overlay2”
}

如果是CentOS7或者RedHat7内核在3.10.0-693以下的,换成下面的内容:

{
“storage-driver”: “overlay2”,
“storage-opts”: [ “overlay2.override_kernel_check=true”]
}

注意:docker存储驱动使用overlay2还是devicemapper根据实际情况选择。
Docker 18.09推荐使用overlay2,devicemapper在后续版本中可能会删除。

配置docker使用devicemapper

创建一个物理卷

sudo pvcreate /dev/sda2

注意:/dev/sda2是一个未使用的磁盘分区,分区格式化时选择Linux LVM

创建一个”docker”卷组

sudo vgcreate docker /dev/sda2

创建一个名为thinpool的存储池

sudo lvcreate —wipesignatures y -n thinpool docker -l 95%VG

sudo lvcreate —wipesignatures y -n thinpoolmeta docker -l 1%VG

在此示例中,设置池大小为“docker”卷组大小的95%。其余的空闲空间可以用来自动扩展数据或元数据。

转换存储池

sudo lvconvert -y —zero n -c 512K —thinpool docker/thinpool —poolmetadata
docker/thinpoolmeta

配置存储池

sudo vi /etc/lvm/profile/docker-thinpool.profile

docker-thinpool.profile内容:

activation {
thin_pool_autoextend_threshold=80
thin_pool_autoextend_percent=20
}

设置thin_pool_autoextend_threshold值。这个值应该是之前设置存储池余下空间的百分比(100 = disabled)。

为当存储池autroextension发生时更改thin_pool_autoextend_percent值。

该值的设置是增加存储池的空间百分比(100 =禁用)。

应用新lvm配置

sudo lvchange —metadataprofile docker-thinpool docker/thinpool

验证lv是否受监控

sudo lvs -o+seg_monitor

移动备份旧的驱动数据

如果Docker daemon之前已经启动过,移动你的驱动数据目录到其它地方。

sudo mkdir /var/lib/docker.bk

sudo mv /var/lib/docker/* /var/lib/docker.bk

配置devicemapper选项

如果/etc/docker文件夹不存在,需要先创建文件夹

sudo mkdir /etc/docker

sudo vi /etc/docker/daemon.json

daemon.json内容:

{
“storage-driver”: “devicemapper”,
“storage-opts”: [
“dm.thinpooldev=/dev/mapper/docker-thinpool”,
“dm.use_deferred_removal=true”,
“dm.use_deferred_deletion=true”
]
}

查看devicemapper结构

sudo lsblk

显示内容:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 20G 0 part /
└─sda2 8:2 0 20G 0 part
├─docker-thinpool_tmeta 253:0 0 204M 0 lvm
│ └─docker-thinpool 253:2 0 19G 0 lvm
└─docker-thinpool_tdata 253:1 0 19G 0 lvm
└─docker-thinpool 253:2 0 19G 0 lvm
sr0 11:0 1 1024M 0 rom

重启docker

sudo systemctl daemon-reload

sudo systemctl restart docker

配置docker私有仓库Registry

拉取registry镜像

sudo docker pull registry:2.6.2

启动registry容器

创建目录

sudo mkdir /opt/registry/data

运行容器

sudo docker run -d -p 5000:5000 -v /opt/registry/data:/var/lib/registry
–name registry —restart=always registry:2.6.2

添加仓库地址

sudo vi /etc/docker/daemon.json

  1. /etc/docker/daemon.json内容:

{
“insecure-registries”: [“192.168.245.227:5000”]
}

重启docker

sudo systemctl daemon-reload

sudo systemctl restart docker

推送镜像到仓库

  1. 添加镜像标签用于推送镜像

sudo docker tag cloudera-master:5.15.0 192.168.245.227:5000/
cloudera-master:5.15.0

  1. 推送镜像

sudo docker push 192.168.245.227:5000/ cloudera-master:5.15.0

查看Registry中镜像

  1. 浏览器访问http:// 192.168.245.227:5000/v2/_catalog

镜像操作

镜像查看

sudo docker images

镜像导出

sudo docker save 90457edaf6ff > /home/hadoop/cloudera-master.tar

其中90457edaf6ff是镜像ID

镜像导入

sudo docker load < /home/hadoop/ cloudera-master.tar

修改镜像标签

sudo docker tag 90457edaf6ff cloudera-master:5.15.0

镜像删除

sudo docker rmi 90457edaf6ff

或者

sudo docker rmi cloudera-master:5.15.0

发表评论

表情:
评论列表 (有 0 条评论,406人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Centos 7 Docker安装

    > 如果我的博客能够帮到大家能够点个赞,关注一下,以后还会更新更过JavaWeb的高级技术,大家的支持就是我继续更新的动力。谢谢。 > Docker 是一个开源的应用容器引擎

    相关 CentOS7安装Docker

    一、Docker简介           Docker 是一个[开源][Link 1]的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到