Docker : Install Docker on Oracle Linux 7 (OL7)
Install Docker
Enable all the required repositories. To do this you are going to need the yum-utils package.
yum install -y yum-utils zip unzip
yum-config-manager --enable ol7_optional_latest
yum-config-manager --enable ol7_addons
yum install -y oraclelinux-developer-release-el7
yum-config-manager --enable ol7_developer
Install Docker and BTRFS.
yum install -y docker-engine btrfs-progs btrfs-progs-devel
Configure BTRFS
By default the containers are created under the "/var/lib/docker", so you really need to house this on a separate disk or in a separate partition, preferably using BTRFS as the file system.
NOTE : you can keep docker in default location or can create new mount .
I have a second LUN with a device named "/dev/sdb". I could build the file system on this disk directly, but I prefer to partition the disks with a single partition using fdisk. These responses will create a new partition using the whole of the disk ("n", "p", "return", "return", "return", "w").
# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2ccc116e.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-25165823, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-25165823, default 25165823):
Using default value 25165823
Partition 1 of type Linux and of size 12 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#
Make the BTRFS file system on the "sdb1" partition. The Oracle Linux 7 Configuring Docker Storage manual describes how to use the docker-storage-config utility to do this with a single command.
# docker-storage-config -s btrfs -d /dev/sdb1
Creating 'btrfs' file system on: /dev/sdb1
#
We can see the file system is added to the "/etc/fstab" file and has been mounted under "/var/lib/docker" by the utility.
# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Nov 14 11:49:55 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/ol-root / xfs defaults 0 0
UUID=196ae589-c060-46b9-87dc-49d3ed2b01e7 /boot xfs defaults 0 0
/dev/mapper/ol-swap swap swap defaults 0 0
UUID=10dbd6c1-8ae4-420e-91d8-b021f334e82b /var/lib/docker btrfs defaults 0 0 # added by docker-storage-config
#
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.7G 0 7.7G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 25M 7.7G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/ol-root 45G 25G 21G 55% /
/dev/sda1 497M 291M 206M 59% /boot
tmpfs 1.6G 12K 1.6G 1% /run/user/42
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/sdb1 100G 17M 98G 1% /var/lib/docker
#
If we didn't have access to the docker-storage-config utility we could have used the following commands.
# mkfs.btrfs -f -L docker1 /dev/sdb1
# systemctl stop docker.service
# rm -Rf /var/lib/docker
# mkdir /var/lib/docker
# echo "LABEL=docker1 /var/lib/docker btrfs defaults 0 0" >> /etc/fstab
# mount /var/lib/docker
Finish Docker Setup
Enable and start the Docker service.
# systemctl enable docker.service
# systemctl start docker.service
You can get information about docker using the following commands.
# systemctl status docker.service
# docker info
# docker version
You are now ready to start using Docker!