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