部署維護(hù)docker環(huán)境的詳細(xì)教程
1,安裝環(huán)境說(shuō)明
系統(tǒng)環(huán)境:centos6.6
服務(wù)應(yīng)用了: haproxy confd etcd docker
主機(jī)名 ip 服務(wù)角色
dockerha-152 192.168.36.152 haproxy confd
dockerEtcd-153 192.168.36.153 etcd
dockermain-154 192.168.36.154 docker
2,安裝依懶包,關(guān)閉沖突的服務(wù)
官方文檔要求Linux kernel至少3.8以上,且docker只能運(yùn)行在64位的系統(tǒng)中。由于RHEL6和CentOS6的內(nèi)核版本為2.6,因此必須要先升級(jí)內(nèi)核。
cd /etc/yum.repos.d wget http://www.hop5.in/yum/el6/hop5.repo yum install kernel-ml-aufs kernel-ml-aufs-devel -y
修改grub的主配置文件/etc/grub.conf,設(shè)置default=0,表示第一個(gè)title下的內(nèi)容為默認(rèn)啟動(dòng)的kernel(一般新安裝的內(nèi)核在第一個(gè)位置)。
然后重啟,重啟系統(tǒng),這時(shí)候你的內(nèi)核就成功升級(jí)了,版本應(yīng)該在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
在Fedora EPEL源中已經(jīng)提供了docker-io包,下載安裝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,安裝組件
(1)haproxy confd
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
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命令使用
(1)查看幫助
docker COMMAND --help
(2)搜索可用的境像
docker search name 如示例:
[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)下載鏡像
注意鏡像名稱(chēng)要寫(xiě)全,就是用docker search name 搜出來(lái)的NAME列的名稱(chēng)。
docker pull name 如示例:
[root@dockermain-154 src]# docker pull jdeathe/centos-ssh-apache-php Pulling repository jdeathe/centos-ssh-apache-php ........ 62203f428b1f: Download complete e1812755a4ca: Download complete 0910edda3736: Download complete Status: Downloaded newer image for jdeathe/centos-ssh-apache-php:latest
(4)查看已安裝的鏡像
[root@dockermain-154 src]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos latest dade6cb4530a 10 days ago 210.1 MB jdeathe/centos-ssh-apache-php latest f1a489312a4a 3 months ago 297.7 MB
(5)docker容器中運(yùn)行命令
docker run命令有兩個(gè)參數(shù),一個(gè)是鏡像名,一個(gè)是要在鏡像中運(yùn)行的命令。 注意:IMAGE=REPOSITORY[:TAG],如果IMAGE參數(shù)不指定鏡像的TAG,默認(rèn)TAG為latest。
[root@dockermain-154 run]# sudo docker run jdeathe/centos-ssh-apache-php echo 'hello world!' hello world! [root@dockermain-154 run]# sudo docker run jdeathe/centos-ssh-apache-php hostname db7e1d2269fb
(6)列出容器
查看最近生成的容器:docker ps -l
查看正在運(yùn)行的容器: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)顯示容器標(biāo)準(zhǔn)輸出
[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 [root@dockermain-154 run]# docker logs db7e1d2269fb db7e1d2269fb
(8)給容器中安裝程序或服務(wù)
[root@dockermain-154 run]# sudo docker run centos yum install -y httpd Loaded plugins: fastestmirror ..........
Dependency Installed:
apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7 centos-logos.noarch 0:70.0.6-1.el7.centos httpd-tools.x86_64 0:2.4.6-19.el7.centos mailcap.noarch 0:2.1.41-2.el7
Failed:
httpd.x86_64 0:2.4.6-19.el7.centos
Complete!
(9)保存對(duì)容器中的修改并生成新的鏡像
docker commit CONTAINERID [REPOSITORY[:TAG]]
REPOSITORY參數(shù)可以是新的鏡像名字,也可以是舊的鏡像名;如果和舊的鏡像名和TAG都相同,會(huì)覆蓋掉舊的鏡像。
[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)停止正在運(yùn)行的容器
(11)查看容器或鏡像詳情
下面是我剛保存提交產(chǎn)生的新的容器
[root@dockermain-154 ~]# docker inspect 943e45b6e5f3 [{ "AppArmorProfile": "", "Args": [], "Config": { "AttachStderr": true, "AttachStdin": true, "AttachStdout": true, "Cmd": [ "/bin/bash" ], "CpuShares": 0, "Cpuset": "", "Domainname": "", "Entrypoint": null, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "ExposedPorts": null, "Hostname": "943e45b6e5f3", "Image": "centos:httpd", "MacAddress": "", "Memory": 0, "MemorySwap": 0, "NetworkDisabled": false, "OnBuild": null, "OpenStdin": true, "PortSpecs": null, "StdinOnce": true, "Tty": true, "User": "", "Volumes": null, "WorkingDir": "" },
(12)刪除容器
docker rm CONTAINERID
查看所有容器ID:docker ps -a -q
刪除所有的容器:docker rm $(docker ps -a -q)
(13)刪除鏡像
docker rmi IMAGE
(14)查看docker的信息,包括Containers和Images數(shù)目、kernel版本等
[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)創(chuàng)建容器,并像平常ssh登錄一樣使用
[root@dockermain-154 ~]# docker run -i -t centos /bin/bash [root@7c0414d03fe7 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var
以上所述是小編給大家介紹的部署維護(hù)docker環(huán)境的詳細(xì)教程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
docker沒(méi)有錯(cuò)誤日志,鏡像服務(wù)卻啟動(dòng)不成功的問(wèn)題以及排查方式
這篇文章主要介紹了docker沒(méi)有錯(cuò)誤日志,鏡像服務(wù)卻啟動(dòng)不成功的問(wèn)題以及排查方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05詳解Docker使用Linux iptables 和 Interfaces管理容器網(wǎng)絡(luò)
這篇文章主要介紹了詳解Docker使用Linux iptables 和 Interfaces管理容器網(wǎng)絡(luò)的相關(guān)內(nèi)容,涉及Linux 網(wǎng)橋接口,iptables等,內(nèi)容豐富,需要的朋友可以了解下。2017-09-09docker start啟動(dòng)容器后仍然exit狀態(tài)的解決
這篇文章主要介紹了docker start啟動(dòng)容器后仍然exit狀態(tài)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解
這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06docker部署xxl-job-admin出現(xiàn)數(shù)據(jù)庫(kù)拒絕問(wèn)題及解決方法
這篇文章主要介紹了docker部署xxl-job-admin出現(xiàn)數(shù)據(jù)庫(kù)拒絕問(wèn)題,本文給大家分享正確的解決思路,對(duì)docker部署xxl-job-admin相關(guān)知識(shí)感興趣的朋友一起看看吧2023-02-02docker+nextcloud搭建個(gè)人云存儲(chǔ)系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了docker+nextcloud搭建個(gè)人云存儲(chǔ)系統(tǒng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01