Sei sulla pagina 1di 4

---

-- CREATE CentOS5 Docker Image (From CentOS 7)


---
Geovane F. Ouverney – gouverney@gmail.com

- Download release info:


  wget http://vault.centos.org/5.11/os/x86_64/CentOS/centos­
release­5­11.el5.centos.x86_64.rpm
- Create a base dir for image (lower case):
  mkdir /tmp/centos5
- Install centos-release:
  rpm ­ivh ­­nodeps ­­root /tmp/centos5 centos­release*rpm
- Ajuste dos repositórios do CentOS:
Disable all entries in “/tmp/centos5/etc/yum.repos.d/CentOS-Base.repo”

Criate a repo entrie for CentOS 5.11 Vault, file


“/tmp/centos5/etc/yum.repos.d/CentOS-Vault.repo”:

#­­­
#­­­­ Packages previously released as 5.11, and its updates
[C5.11­base]
name=CentOS­5.11 ­ Base
baseurl=http://vault.centos.org/5.11/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm­gpg/RPM­GPG­KEY­CentOS­5
enabled=1

[C5.11­updates]
name=CentOS­5.11 ­ Updates
baseurl=http://vault.centos.org/5.11/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm­gpg/RPM­GPG­KEY­CentOS­5
enabled=1

[C5.11­extras]
name=CentOS­5.11 ­ Extras
baseurl=http://vault.centos.org/5.11/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm­gpg/RPM­GPG­KEY­CentOS­5
enabled=1

[C5.11­centosplus]
name=CentOS­5.11 ­ Plus
baseurl=http://vault.centos.org/5.11/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm­gpg/RPM­GPG­KEY­CentOS­5
enabled=1
#­­­

- Install base system:


  yum ­­nogpgcheck ­­installroot /tmp/centos5/\
      groupinstall Core
  yum ­­nogpgcheck ­­installroot /tmp/centos5/\
      groupinstall "Yum Utilities"
  yum ­­nogpgcheck ­­installroot /tmp/centos5/\
      groupinstall Editors
  yum ­­nogpgcheck ­­installroot /tmp/centos5/\
      groupinstall "Development Tools"

- mount file systems:


  mount ­t proc foo /tmp/centos5/proc
  mount ­t sysfs foo /tmp/centos5/sys
- chroot:
  chroot /tmp/centos5 /bin/bash ­­login
- Install desired packets:
  yum install <foobar>
- Exit chroot and mport as docker image:
  cd /tmp/centos5
  tar ­C centos5 ­c . | docker import ­ centos

--
-- DOCKER basics

- Execute docker image and start an interactive bash:


  docker run ­it centos5 bash

­ Execute docker image and run a command:
  docker run ­­rm ­d ­t centos5 sleep 10
Obs.: “--rm” remove container after “sleep 10” command execution.

- listing containers:
executing:
docker ps
all:
docker ps ­­all
filter:
docker ps ­­filter "status=exited"
- Acssess a container:
get container id:
docker ps
open a shell:
docker exec ­it <container ID> bash
attach a running section:
    docker attach <container ID>
- Share data between host and container:
docker run -d -v <host source dir>:<container target dir> -t <image> <cmd>
  ­v volume a ser <host source dir>:<container target dir>
    ­d "datacha" o processo<cmd> e roda em background
    ­t aloca um pseudo tty
    obs.: <container target dir> is created on the fly
eg.:
docker run ­d ­v /data:/data ­t centos5 bash
eg.:
docker run ­d ­v ~/nginxlogs:/var/log/nginx ­p 5000:80 ­i nginx
Obs.: -p port mapping host/container “<host port>:<container port>”

- Shutdown a container:
docker stop <container ID>
- remove a container:
  docker rm <container ID>

---
-- Docker backup / restore
---

- get container ID:


  docker ps
- Creating a snapshot:
docker commit ­p <container ID> <backup name>
- list snapshot, created as docker image by commit command:
  doker images
- save a docker image as tarball:
  docker save ­o <destination dir>/<file>.tar <image name>
- recovery from tarball backup:
  docker load ­i <destination dir>/<file>.tar
- list docker images:
  docker images
- rename a docker image:
  docker tag <image name> <new image name>
- remove a docker image:
  docker rmi <image_name>
- Attach running container:
  docker attach <container ID>

---
-- Create Debian Image (From Debian)
--

- Creating the container:


  sudo debootstrap xenial xenial > /dev/null
  sudo tar ­C xenial ­c . | docker import – xenial

­ Runing the container:
  docker run xenial cat /etc/lsb­release
---
-- CREATE CentOS 7 Image (From CentOS 7)
--

- Download release info:


yum ­­downloadonly ­­downloaddir=. reinstall centos­release

- Create a base dir for image (lower case):


  mkdir /tmp/centos7
- Install centos release package:
  rpm ­ivh ­­nodeps ­­root /tmp/centos7 centos­release*
- instalar o sistema base:
  yum ­­installroot /tmp/centos7/ groupinstall Core
  yum ­­installroot /tmp/centos7/ groupinstall "Yum Utilities"
  yum ­­installroot /tmp/centos7/ groupinstall Editors
  yum ­­installroot /tmp/centos7/ groupinstall "Development Tools"
  yum ­­installroot /tmp/centos7/ install cmake
  yum ­­installroot /tmp/centos7/ install vim

- mount file systems:


  mount ­t proc foo /tmp/centos7/proc
  mount ­t sysfs foo /tmp/centos7/sys
- chroot:
  chroot /tmp/centos7 /bin/bash ­­login
- Install desired packets:
  yum install <foobar>
- Exit chroot and import as docker image:
  cd /tmp/centos7
  tar ­C centos7 ­c . | docker import ­ centos7

References:

* https://www.lucas-nussbaum.net/blog/?p=385
* https://docs.docker.com/engine/userguide/eng-image/baseimages
* https://linoxide.com/linux-how-to/backup-restore-migrate-containers-docker/
* https://docs.docker.com/engine/installation/linux/docker-ce/debian/#uninstall-
docker-ce
* https://docs.docker.com/engine/installation/linux/linux-postinstall/
* https://docs.docker.com/engine/userguide/eng-image/baseimages
* https://docs.docker.com/engine/reference/builder/

Potrebbero piacerti anche