docker镜像制作(二)——构建企业镜像LAMP+BBS
生活随笔
收集整理的這篇文章主要介紹了
docker镜像制作(二)——构建企业镜像LAMP+BBS
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
docker鏡像制作(二)——構(gòu)建企業(yè)鏡像LAMP+BBS
- 一、LAMP概述
- 二、進(jìn)行搭建
- 1、啟動基礎(chǔ)鏡像容器
- 2、容器中優(yōu)化yum源,并安裝軟件
- 3、軟件初始化
- ①、ssh的開啟
- ②、mysql的安裝和開啟
- ③、apache初始化
- 4、宿主機(jī)編輯PHP主頁文件并測試
- 5、安裝論壇bbs
- 6、對LAMP+BBS的整體構(gòu)架進(jìn)行封裝鏡像處理
一、LAMP概述
- LAMP架構(gòu)是目前成熟的企業(yè)網(wǎng)站應(yīng)用模式之一,指的是協(xié)同工作的一整套系統(tǒng)和相關(guān)軟件,能夠提供靜態(tài)和動態(tài)Web站點服務(wù)以及其應(yīng)用開發(fā)環(huán)境。
- LAMP是一個縮寫詞,具體包括Linux操作系統(tǒng)、Apache網(wǎng)站服務(wù)器、MySQL數(shù)據(jù)庫服務(wù)器、PHP(或Perl、Python)網(wǎng)頁編程語言。
- 相關(guān)組件的主要作用:
- (平臺)Linux:作為LAMP架構(gòu)的基礎(chǔ),提供用于支撐Web站點的操作系統(tǒng),能夠與其他三個組件提供更好的穩(wěn)定性,兼容性(AMP組件也支持Windows、UNIX等平臺) 。
- (前臺)Apache:作為LAMP架構(gòu)的前端,是一款功能強(qiáng)大,穩(wěn)定性好的Web服務(wù)器程序,該服務(wù)器直接面向用戶提供網(wǎng)站訪問,發(fā)送網(wǎng)頁,圖片等文件內(nèi)容。
- (后臺)MySQL:作為LAMP架構(gòu)的后端,是一款流行的開源關(guān)系數(shù)據(jù)庫系統(tǒng)。在企業(yè)網(wǎng)站、業(yè)務(wù)系統(tǒng)等應(yīng)用中,各種賬戶信息、產(chǎn)品信息,客戶資料、業(yè)務(wù)數(shù)據(jù)等都可以存儲到MySQL數(shù)據(jù)庫,其他程序可以通過SQL語句來查詢,更改這些信息。
- (中間連接)PHP/Perl/Python:作為三種開發(fā)動態(tài)網(wǎng)頁的編程語言,負(fù)責(zé)解釋動態(tài)網(wǎng)頁文件,負(fù)責(zé)溝通Web服務(wù)器和數(shù)據(jù)庫系統(tǒng)以協(xié)同工作,并提供Web應(yīng)用程序的開發(fā)和運(yùn)行環(huán)境。其中PHP是一種被廣泛應(yīng)用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應(yīng)用開發(fā)。
二、進(jìn)行搭建
1、啟動基礎(chǔ)鏡像容器
掛載本地局域網(wǎng)yum源(數(shù)據(jù)卷) mount -o loop /mnt/CentOS-7-x86_64-DVD-1708.iso /var/ftp/centos7.4開啟一個centos7.4容器 mkdir -p /opt/vol/mysql /opt/vol/html docker run -itd --name="lamp_bbs" --privileged=true -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html -p 8888:80 -p 2222:22 -p 33060:3306 9f266d35e02c /usr/sbin/init docker exec -it lamp_bbs /bin/bash2、容器中優(yōu)化yum源,并安裝軟件
cd /etc/yum.repos.d mkdir repo.bak mv *.repo repo.bak cat > /etc/yum.repos.d/ftp_7.repo <<EOF [ftp] name=ftpbase baseurl=ftp://172.17.0.1/centos7.4 enabled=1 gpgcheck=0 EOFyum makecache fast && yum -y install net-tools openssl openssh-server httpd mysql mariadb php php-mysql3、軟件初始化
①、ssh的開啟
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N '' vi /etc/ssh/sshd_config (第17行和38行取消注釋)passwd #修改登錄密碼,才能遠(yuǎn)程ssh連接 /usr/sbin/sshd -D & #后臺啟動服務(wù)
②、mysql的安裝和開啟
宿主機(jī)上傳mysql壓縮包到容器(mysql-5.7.17.tar.gz、boost_1_59_0.tar.gz) docker cp 本地mysql文件路徑 ID全稱:容器路徑安裝環(huán)境依賴包 yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmaketar zxvf mysql-5.7.17.tar.gz tar zxvf boost_1_59_0.tar.gzcd /opt mv boost_1_59_0 /var/lib/boost配置軟件模塊 cd /opt/mysql-5.7.17/ cmake \ -DCMAKE_INSTALL_PREFIX=/var/lib/mysql \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/var/lib/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/var/lib/mysql/data \ -DWITH_BOOST=/var/lib/boost \ -DWITH_SYSTEMD=1編譯及安裝 make -j2 && make install建mysql用戶 useradd -M -s /sbin/nologin mysql修改mysql 配置文件 vim /etc/my.cnf #刪除原配置項,再重新添加下面內(nèi)容 [client] port = 3306 default-character-set=utf8 socket=/var/lib/mysql/mysql.sock[mysql] port = 3306 default-character-set=utf8 socket = /var/lib/mysql/mysql.sock auto-rehash[mysqld] user = mysql basedir=/var/lib/mysql datadir=/var/lib/mysql/data port = 3306 character-set-server=utf8 pid-file = /var/lib/mysql/mysqld.pid socket=/var/lib/mysql/mysql.sock bind-address = 0.0.0.0 skip-name-resolve max_connections=2048 default-storage-engine=INNODB max_allowed_packet=16M server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES更改mysql安裝目錄和配置文件的屬主屬組 chown -R mysql:mysql /var/lib/mysql/ chown mysql:mysql /etc/my.cnf設(shè)置路徑環(huán)境變量 echo 'export PATH=/var/lib/mysql/bin:/var/lib/mysql/lib:$PATH' >> /etc/profile source /etc/profile初始化數(shù)據(jù)庫 cd /var/lib/mysql/bin/ ./mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/var/lib/mysql \ --datadir=/var/lib/mysql/data添加mysqld系統(tǒng)服務(wù) cp /var/lib/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/systemctl daemon-reload systemctl start mysqld.service systemctl enable mysqld netstat -anpt | grep 3306 修改mysql 的登錄密碼 mysqladmin -u root -p password "010230" 授權(quán)遠(yuǎn)程登錄 mysql -u root -p010230 grant all privileges on *.* to 'root'@'%' identified by '010230'; grant all privileges on *.* to discuz@'%' identified by '010230'; create database discuz;
③、apache初始化
systemctl start httpd systemctl enable httpd4、宿主機(jī)編輯PHP主頁文件并測試
vim /opt/vol/html/index.php <?php phpinfo(); ?>用另一臺虛擬機(jī)訪問頁面192.168.184.70:8888進(jìn)行測試
5、安裝論壇bbs
宿主機(jī)移動論壇壓縮包移動到掛載目錄/var/www/html(Discuz_X3.4_SC_UTF8.zip) mv /opt/Discuz_X3.4_SC_UTF8.zip /opt/vol/html/ 宿主機(jī)進(jìn)行解壓 unzip /opt/vol/html/Discuz_X3.4_SC_UTF8.zip 容器中進(jìn)行: cd /var/www/html/dir_SC_UTF8/上傳站點更新包 cp -r /var/www/html/dir_SC_UTF8/upload/ /var/www/html/bbs cd /var/www/html/bbsps aux #查看發(fā)現(xiàn)論壇進(jìn)程的用戶名是apache chown -R apache ./config chown -R apache ./data chown -R apache ./uc_client chown -R apache ./uc_server/data論壇頁面訪問 http://192.168.80.70:8888/bbs數(shù)據(jù)庫服務(wù)器:172.17.0.2 ###本地架設(shè)就用localhost,如何不是在在本機(jī)上就要填寫IP地址和端口號 數(shù)據(jù)庫名字:discuz 數(shù)據(jù)庫用戶名:discuz 數(shù)據(jù)庫密碼:010230 管理員賬號:admin 管理員密碼:010230
6、對LAMP+BBS的整體構(gòu)架進(jìn)行封裝鏡像處理
docker commit 8971ad096382 ljm/centos7_lamp_bbs總結(jié)
以上是生活随笔為你收集整理的docker镜像制作(二)——构建企业镜像LAMP+BBS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker容器的基本操作
- 下一篇: Failed to start SYSV