Docker on RHEL - anujajakhade/anuja GitHub Wiki

  1. Backup the previous docker binaries (Incase something goes wrong)

    cp -Rf /usr/local/bin/docker* /tmp/ && rm -rf /usr/bin/docker

  2. Copy the latest docker-ce binaries to /usr/local/bin

    cd /scratch/ecos0041/docker-ce/docker-17.05.0-ce-rhel7.3-20170523
    cp docker* /usr/local/bin
    
  3. Remove systemctl docker service files

    rm -rf /usr/lib/systemd/system/docker*  && /etc/systemd/system/docker.service.d/ 
    
  4. Update /etc/sysconfig/docker

    DOCKER_OPTS=" -H tcp://0.0.0.0:2375 -G docker --storage-opt dm.basesize=100G -g /scratch/ecos0010/docker23Oct"
    
  5. Create docker.service and docker.socket in /etc/systemd/system

    cd /etc/systemd/system 
    

docker.service

[root@ecos0050 system]# rm -rf /scratch/ecos0050/docker
[root@ecos0050 system]# vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

[Service]
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
EnvironmentFile=/etc/sysconfig/docker
PIDFile=/var/run/docker.pid
ExecStart=/usr/local/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 -G docker --storage-driver=devicemapper --storage-opt dm.basesize=150G --data-root /scratch/ecos0050/docker_April
#ExecStart=/usr/local/bin/dockerd -H --storage-driver=devicemapper fd:// $DOCKER_OPTS
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes

[Install]
WantedBy=multi-user.target

docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

[Service]
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
EnvironmentFile=/etc/sysconfig/docker
PIDFile=/var/run/docker.pid
ExecStart=/usr/local/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375 -G docker --storage-driver=devicemapper --storage-opt dm.basesize=150G -g /scratch/ecos0010/docker
#ExecStart=/usr/local/bin/dockerd -H --storage-driver=devicemapper fd:// $DOCKER_OPTS
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes

[Install]
WantedBy=multi-user.target

docker.socket

[Unit]
Description=Docker Socket for the API
PartOf=docker.service

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
# A Socket(User|Group) replacement workaround for systemd <= 214
ExecStartPost=/usr/bin/chown root:docker /var/run/docker.sock

[Install]
WantedBy=sockets.target
  1. Reload configuration , enable docker.service and start the Service

    systemctl daemon-reload && systemctl disable docker.service && systemctl enable docker.service
    
    systemctl start docker.service
    

    Create docker group

    groupadd docker 
    

Check status

systemctl status docker.service