CentOS-7安装docker
系统要求
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: T3S6LV6N
UKLE
43QX
347L
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
/etc/docker/daemon.json内容:
{
“insecure-registries”: [“192.168.245.227:5000”]
}
重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
推送镜像到仓库
添加镜像标签用于推送镜像
sudo docker tag cloudera-master:5.15.0 192.168.245.227:5000/
cloudera-master:5.15.0
推送镜像
sudo docker push 192.168.245.227:5000/ cloudera-master:5.15.0
查看Registry中镜像
浏览器访问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
还没有评论,来说两句吧...