Detailed tutorial on deploying and maintaining the docker environment

  • 2020-06-07 05:34:05
  • OfStack

1. Installation environment description

System environment: centos6.6

Service applied: haproxy confd etcd docker

Hostname ip service role

dockerha - 152 192.168.36.152 haproxy confd

dockerEtcd-153 192.168.36.153 etcd

dockermain-154 192.168.36.154 docker

2, install the lazy package, turn off the conflicting services

The official documentation requires Linux kernel to be at least 3.8 and that docker can only run on 64-bit systems. Since the kernel versions of RHEL6 and CentOS6 are 2.6, you must upgrade the kernel first.


cd /etc/yum.repos.d 
wget http://www.hop5.in/yum/el6/hop5.repo
yum install kernel-ml-aufs kernel-ml-aufs-devel -y

Modify the grub main configuration file /etc/ grub.conf and set default=0 to indicate that the contents under the first title are kernel started by default (generally new installed kernel in the first location).

Then reboot, reboot the system, and your kernel will be upgraded, which should be over 3.8,


uname -r 
[root@dockermain-154 shell]# uname -r

3.10.5-3.el6.x86_64


sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
setenforce 0

docker-io package has been provided in Fedora EPEL source. Download and install epel:


rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm 
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

3. Install the components

(1)haproxy confd

Operating on dockerha - 152

1, haproxy


# yum  � y install haproxy 

2, confd


# wget https://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64 
# mv confd /usr/local/bin/confd 
# chmod +x /usr/local/bin/confd 
# /usr/local/bin/confd -version 

(2)etcd

Operating on dockerEtcd - 153


# mkdir -p /home/install && cd /home/install 
# wget https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz 
# tar -zxvf etcd-v0.4.6-linux-amd64.tar.gz 
# cd etcd-v0.4.6-linux-amd64 
# cp etcd* /bin/ 
# /bin/etcd -version 
etcd version 0.4.6 

(3)Docker


# yum -y install docker-io 
# service docker start 
# chkconfig docker on 

4,docker command is used

(1) Check help


docker COMMAND --help

(2) Search available images

docker search name example:


[root@dockermain-154 src]# docker search centos
NAME        DESCRIPTION          STARS  OFFICIAL AUTOMATED
centos        The official build of CentOS.     817  [OK]  
ansible/centos7-ansible    Ansible on Centos7        30     [OK]
tutum/centos      Centos image with SSH access. For the root... 13     [OK]
jdeathe/centos-ssh-apache-php  CentOS-6 6.5 x86_64 / Apache / PHP / PHP m... 8     [OK]
blalor/centos      Bare-bones base CentOS 6.5 image    8     [OK]
jprjr/centos-php-fpm                6     [OK]
steeef/graphite-centos    CentOS 6.x with Graphite and Carbon via ng... 6     [OK]
tutum/centos-6.4     DEPRECATED. Use tutum/centos:6.4 instead. ... 5     [OK]
layerworx/centos     A general CentOS 6 image with the EPEL6 an... 2     [OK]
jr42/chef-solo-centos    Official CentOS base images with current c... 1     [OK]
million12/centos-supervisor   Base CentOS-7 with supervisord launcher, h... 1     [OK]
internavenue/centos-percona   Centos-based Percona image.      1     [OK]
jdeathe/centos-ssh     CentOS-6 6.5 x86_64 / EPEL Repo. / OpenSSH... 1     [OK]
jdeathe/centos-ssh-mysql   CentOS-6 6.5 x86_64 / MySQL. Image include... 1     [OK]
yajo/centos-epel     CentOS with EPEL and fully updated    1     [OK]
nimmis/java-centos     This is docker images of CentOS 7 with dif... 0     [OK]
lighthopper/orientdb-centos   A Dockerfile for creating an OrientDB imag... 0     [OK]
bbrietzke/centos-starter   CentOS 7 with EPEL and SupervisorD    0     [OK]
tcnksm/centos-node     Dockerfile for CentOS packaging node   0     [OK]
insaneworks/centos     CentOS 6.5 x86_64 + @update      0     [OK]
snowyday/centos      Provide for emacs and Ricty font on X11 en... 0     [OK]
dmglab/centos      CentOS with superpowers!      0     [OK]
akroh/centos      Centos 6 container that has been updated w... 0     [OK]
timhughes/centos     Centos with systemd installed and running  0     [OK]
solict/provisionous-puppet-centos CentOS provisions with Puppet included   0     [OK]

(3) Download the image

Note that the full name of the mirror is the name of the NAME column found using docker search name.

docker pull name example:


uname -r 
[root@dockermain-154 shell]# uname -r
0

(4) View the installed image


uname -r 
[root@dockermain-154 shell]# uname -r
1

(5) Run commands in docker container

The docker run command takes two arguments, one for the mirror name and one for the command to run in the mirror. Note: IMAGE=REPOSITORY[:TAG]. If the IMAGE parameter does not specify the mirror TAG, TAG is latest by default.


uname -r 
[root@dockermain-154 shell]# uname -r
2

(6) List containers

View the most recently generated container: docker ES139en-ES140en

View the running container: docker ps


 [root@dockermain-154 run]# docker ps -l
CONTAINER ID  IMAGE         COMMAND    CREATED    STATUS      PORTS    NAMES
db7e1d2269fb  jdeathe/centos-ssh-apache-php:latest "hostname"   27 seconds ago  Exited (0) 26 seconds ago      adoring_babbage 

(7) Display container standard output


uname -r 
[root@dockermain-154 shell]# uname -r
4

(8) To install the program or service in the container


uname -r 
[root@dockermain-154 shell]# uname -r
5

Dependency Installed:


uname -r 
[root@dockermain-154 shell]# uname -r
6

Failed:

httpd.x86_64 0:2.4.6-19.el7.centos

Complete!

(9) Save the changes in the container and generate a new image


uname -r 
[root@dockermain-154 shell]# uname -r
7

The REPOSITORY parameter can be a new or old mirror name; If both the old mirror name and TAG are the same, the old mirror is overwritten.


[root@dockermain-154 ~]# docker commit bd7cc4f4ac92 centos:httpd
1e0915f3247b86414ebc11fd994fc6abfb590ff3b1ab890949c845ee88b2d9f4
[root@dockermain-154 ~]# docker images
REPOSITORY      TAG     IMAGE ID   CREATED    VIRTUAL SIZE
centos       httpd    1e0915f3247b  9 seconds ago  320.8 MB
centos       latest    dade6cb4530a  10 days ago   210.1 MB
jdeathe/centos-ssh-apache-php latest    f1a489312a4a  3 months ago  297.7 MB

(10) Stop the running container

(11) View container or mirror details

Here is the new container that I just saved from the commit


uname -r 
[root@dockermain-154 shell]# uname -r
9

(12) Delete the container


docker rm CONTAINERID

View all containers ID: docker ES188en-ES189en-ES190en

Delete all containers: docker rm $(docker ES196en-ES197en-ES198en)

(13) Delete the image


docker rmi IMAGE

(14) Check the information of docker, including the number of Containers and Images, kernel version, etc


[root@dockermain-154 ~]# docker info
Containers: 14
Images: 56
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 89
Execution Driver: native-0.2
Kernel Version: 3.10.5-3.el6.x86_64
Operating System: <unknown>
CPUs: 1
Total Memory: 989.6 MiB
Name: dockermain-154
ID: W4PW:W3XR:FQZE:SBAA:2DS2:BM6N:DV5B:ARF2:3SZM:XGST:5ZF7:DFZV
WARNING: No swap limit support

(15) Create the container and use it as usual for ssh login 1


sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
setenforce 0
3

Related articles: