用Docker构建LNMP环境(上)
生活随笔
收集整理的這篇文章主要介紹了
用Docker构建LNMP环境(上)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
利用docker搭建lnmp環(huán)境(上)
小知識(shí):
docker鏡像運(yùn)行之后變成容器(docker?run) Registry?是Docker鏡像的中央存儲(chǔ)倉(cāng)庫(kù)(pull/push) https://git.oschina.net/????????????????????#從這個(gè)地方拉取git的倉(cāng)庫(kù)1.源碼克隆到自己的linux服務(wù)器上
[root@oldboy?~]#?git?clone?https://git.oschina.net/xxsl/docker-training.git Initialized?empty?Git?repository?in?/root/docker-training/.git/ remote:?Counting?objects:?2045,?done. remote:?Compressing?objects:?100%?(1326/1326),?done. remote:?Total?2045?(delta?681),?reused?2045?(delta?681) Receiving?objects:?100%?(2045/2045),?7.22?MiB?|?386?KiB/s,?done. Resolving?deltas:?100%?(681/681),?done. [root@oldboy?~]#2.創(chuàng)建centos7鏡像其余的軟件全部基于centos7
[root@oldboy?centos7]#?pwd /root/docker-training/centos7 [root@oldboy?centos7]#?docker?build?-t?csphere/centos:7.1?./ [root@oldboy?centos7]#?docker??p_w_picpaths REPOSITORY??????????TAG?????????????????IMAGE?ID????????????CREATED?????????????VIRTUAL?SIZE csphere/centos??????7.1?????????????????080063d1c72d????????6?seconds?ago???????591.4?MB jb/jobs03???????????latest??????????????dd40474b2a4c????????17?hours?ago????????1.093?MB jobs03??????????????latest??????????????dd40474b2a4c????????17?hours?ago????????1.093?MB [root@oldboy?centos7]#3.解釋說(shuō)明Dockerfile
[root@oldboy?centos7]#?cat?Dockerfile # #?MAINTAINER????????Carson,C.J.Zeong?<zcy@nicescale.com> #?DOCKER-VERSION????1.6.2 # #?Dockerizing?CentOS7:?Dockerfile?for?building?CentOS?p_w_picpaths # FROM???????centos:centos7.1.1503 MAINTAINER?Carson,C.J.Zeong?<zcy@nicescale.com> ENV?TZ?"Asia/Shanghai"??#ENV環(huán)境變量??以后在docker容器run指令使用,并在容器運(yùn)行保持 ENV?TERM?xterm ADD?aliyun-mirror.repo?/etc/yum.repos.d/CentOS-Base.repo ADD?aliyun-epel.repo?/etc/yum.repos.d/epel.repo RUN?yum?install?-y?curl?wget?tar?bzip2?unzip?vim-enhanced?passwd?sudo?yum-utils?hostname?net-tools?rsync?man?&&?\yum?install?-y?gcc?gcc-c++?git?make?automake?cmake?patch?logrotate?python-devel?libpng-devel?libjpeg-devel?&&?\yum?install?-y?--enablerepo=epel?pwgen?python-pip?&&?\yum?clean?all? RUN?pip?install?supervisor??????#RUN執(zhí)行的指令 ADD?supervisord.conf?/etc/supervisord.conf?#將本地的文件上傳至/etc/下命名為supervisord.conf RUN?mkdir?-p?/etc/supervisor.conf.d?&&?\mkdir?-p?/var/log/supervisor EXPOSE?22??#告訴docker服務(wù)端容器暴露的端口 ENTRYPOINT?["/usr/bin/supervisord",?"-n",?"-c",?"/etc/supervisord.conf"]4.docker使用一個(gè)鏡像運(yùn)行一個(gè)容器
docker??run??-d???-p??2222:22???不管此個(gè)容器是否停止?下次系統(tǒng)還是用2222??來(lái)映射咱們dockefile中的22端口 docker?run???-d???-P??2222:22??容器重啟以后?系統(tǒng)會(huì)隨機(jī)的分配一個(gè)?沒有使用的端口 --name??容器的名字 -d??后臺(tái)5.創(chuàng)建centos7.1容器?
[root@oldboy?~]#?docker?run?-d?-p?2222:22?--name?base?csphere/centos:7.1???#通過(guò)csphere/centos:7.1??創(chuàng)建一個(gè)名字為base放在后臺(tái)運(yùn)行的docker容器 55e9793e58c0f70ec2d358d2eeb11e1a1afebe7987d64339da0a30da995ef340??#容器的長(zhǎng)id號(hào)返回來(lái) [root@oldboy?~]#6.查看創(chuàng)建的容器
[root@oldboy?~]#?docker??ps?-a??#查看容器 CONTAINER?ID????????IMAGE????????????????COMMAND????????????????CREATED?????????????STATUS??????????????????????PORTS??????????????????NAMES 55e9793e58c0????????csphere/centos:7.1???"/usr/bin/supervisor???2?minutes?ago???????Up?2?minutes????????????????0.0.0.0:2222->22/tcp???base7.創(chuàng)建php的容器(以及運(yùn)行php的容器)
[root@oldboy?php-fpm]#?docker?build?-t?csphere/php-fpm:5.4??. 最后的內(nèi)容 Removing?intermediate?container?a3b57f2eb456 Successfully?built?38d1572aef94[root@oldboy?php-fpm]#?docker?p_w_picpaths REPOSITORY??????????TAG?????????????????IMAGE?ID????????????CREATED?????????????VIRTUAL?SIZE csphere/php-fpm?????5.4?????????????????38d1572aef94????????36?seconds?ago??????685?MB csphere/centos??????7.1?????????????????080063d1c72d????????49?minutes?ago??????591.4?MB[root@oldboy?php-fpm]#?docker?run?-d?-p?8080:80?--name?website?csphere/php-fpm:5.4?? [root@oldboy?php-fpm]#?docker????ps?-a CONTAINER?ID????????IMAGE?????????????????COMMAND????????????????CREATED?????????????STATUS??????????????????????PORTS???????????????????????????????????NAMES cf1f2bd73808????????csphere/php-fpm:5.4???"/usr/bin/supervisor???8?seconds?ago???????Up?8?seconds????????????????22/tcp,?443/tcp,?0.0.0.0:8080->80/tcp???website??????????????? 55e9793e58c0????????csphere/centos:7.1????"/usr/bin/supervisor???33?minutes?ago??????Up?33?minutes???????????????0.0.0.0:2222->22/tcp????????????????????base 測(cè)試容器OK8進(jìn)入一個(gè)docker內(nèi)部查看
[root@oldboy?php-fpm]#?docker??exec?-it?website?/bin/bash [root@cf1f2bd73808?/]#?supervisor? supervisorctl??supervisord??? [root@cf1f2bd73808?/]#?supervisor supervisorctl??supervisord??? [root@cf1f2bd73808?/]#?supervisorctl nginx????????????????????????????RUNNING???pid?10,?uptime?0:07:30 php-fpm??????????????????????????RUNNING???pid?11,?uptime?0:07:30 supervisor>?exit9.創(chuàng)建mysql的容器
[root@oldboy?mysql]#?docker??build?-t?csphere/mysql:5.5???./ [root@oldboy?mysql]#?docker?p_w_picpaths REPOSITORY??????????TAG?????????????????IMAGE?ID????????????CREATED?????????????VIRTUAL?SIZE csphere/mysql???????5.5?????????????????63b2bd2cab97????????35?seconds?ago??????725.1?MB csphere/php-fpm?????5.4?????????????????38d1572aef94????????33?minutes?ago??????685?MB csphere/centos??????7.1?????????????????080063d1c72d????????About?an?hour?ago???591.4?MB [root@oldboy?mysql]#?docker?run?-d?-p?3305:3306?--name?dbserver??csphere/mysql:5.5 36fb44b10702ad1eb38f646e381354ef8b2d832d27b54f8eb3ce5424b6c41e7e [root@oldboy?mysql]#?docker??ps?-a CONTAINER?ID????????IMAGE?????????????????COMMAND????????????????CREATED?????????????STATUS??????????????????????PORTS???????????????????????????????????NAMES 36fb44b10702????????csphere/mysql:5.5?????"/scripts/start"???????9?seconds?ago???????Up?8?seconds????????????????22/tcp,?0.0.0.0:3305->3306/tcp??????????dbserver?????????????? cf1f2bd73808????????csphere/php-fpm:5.4???"/usr/bin/supervisor???27?minutes?ago??????Up?27?minutes???????????????22/tcp,?443/tcp,?0.0.0.0:8080->80/tcp???website??????????????? 55e9793e58c0????????csphere/centos:7.1????"/usr/bin/supervisor???About?an?hour?ago???Up?About?an?hour????????????0.0.0.0:2222->22/tcp????????????????????base 進(jìn)入docker容器內(nèi)部 [root@oldboy?~]#?docker??exec?-it?dbserver???/bin/bash??#進(jìn)入容器的命令10-v參數(shù)的使用 ?可以掛載一個(gè)目錄到本地,docker投容器mysql這個(gè)容器如果被刪除了那么還可以恢復(fù)數(shù)據(jù)數(shù)據(jù)文件還在的
此處的思想就是:先用-v ?參數(shù)啟動(dòng)一個(gè)數(shù)據(jù)庫(kù)的docker容器,然后刪除容器,再次新建一個(gè)數(shù)據(jù)庫(kù)的docker容器,,掛載的目錄還是原來(lái)的目錄可以看出數(shù)據(jù)依然還在
docker?run?-d?-p?3306:3306??-v?/var/lib/docker/vfs/dir/mydata:/var/lib/mysql??csphere/mysql:5.5docker?exec?-it?e5387295506f??/bin/bash?mysql show?databases;create??database??mydb?; [root@oldboy?centos7]#?cd???/var/lib/docker/vfs/dir/mydata/ [root@oldboy?mydata]#?ls aria_log.00000001??ibdata1??????ib_logfile1??mysql???????performance_schema aria_log_control???ib_logfile0??mydb?????????mysql.sock??test [root@oldboy?mydata]# 準(zhǔn)備刪除docker容器 [root@oldboy?mydata]#?docker?ps?-a CONTAINER?ID????????IMAGE?????????????????COMMAND????????????????CREATED?????????????STATUS??????????????????????PORTS???????????????????????????????????NAMES e5387295506f????????csphere/mysql:5.5?????"/scripts/start"???????36?minutes?ago??????Up?36?minutes???????????????22/tcp,?0.0.0.0:3306->3306/tcp??????????suspicious_morse???? [root@oldboy?mydata]#?docker?rm?-f?e5387295506f??#強(qiáng)制刪除一個(gè)容器???也可以docker??stop?e5387295506f?&&docker?rm?e5387295506f e5387295506f[root@oldboy?mydata]#?cd???/var/lib/docker/vfs/dir/mydata/??????#可以看出容器被刪除了但是數(shù)據(jù)還在 [root@oldboy?mydata]#?ls aria_log.00000001??ibdata1??????ib_logfile1??mysql???????performance_schema aria_log_control???ib_logfile0??mydb?????????mysql.sock??test [root@oldboy?mydata]# [root@oldboy?mydata]#?docker??run?-d?-p?3306:3306?--name?newdb??-v???/var/lib/docker/vfs/dir/mydata:/var/lib/mysql??csphere/mysql:5.5??#生成新的數(shù)據(jù)進(jìn)行再次掛載 d9dddf959cdfdf7506812b8da258e8ac74e3af5cdf3223bbc26b24fcb2289fee [root@oldboy?mydata]# [root@oldboy?mydata]#?docker?exec?-it?newdb??/bin/bash??#再次進(jìn)入 [root@d9dddf959cdf?/]#?mysql show?databases;??#可以看出以前創(chuàng)建的數(shù)據(jù)庫(kù)還在轉(zhuǎn)載于:https://blog.51cto.com/wsxxsl/1834558
總結(jié)
以上是生活随笔為你收集整理的用Docker构建LNMP环境(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 算法笔记(JavaScript版)——排
- 下一篇: 几何画板可以这样画虚线