docker镜像制作(二)——构建企业镜像LAMP+BBS
生活随笔
收集整理的這篇文章主要介紹了
docker镜像制作(二)——构建企业镜像LAMP+BBS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
docker鏡像制作(二)——構建企業鏡像LAMP+BBS
- 一、LAMP概述
- 二、進行搭建
- 1、啟動基礎鏡像容器
- 2、容器中優化yum源,并安裝軟件
- 3、軟件初始化
- ①、ssh的開啟
- ②、mysql的安裝和開啟
- ③、apache初始化
- 4、宿主機編輯PHP主頁文件并測試
- 5、安裝論壇bbs
- 6、對LAMP+BBS的整體構架進行封裝鏡像處理
一、LAMP概述
- LAMP架構是目前成熟的企業網站應用模式之一,指的是協同工作的一整套系統和相關軟件,能夠提供靜態和動態Web站點服務以及其應用開發環境。
- LAMP是一個縮寫詞,具體包括Linux操作系統、Apache網站服務器、MySQL數據庫服務器、PHP(或Perl、Python)網頁編程語言。
- 相關組件的主要作用:
- (平臺)Linux:作為LAMP架構的基礎,提供用于支撐Web站點的操作系統,能夠與其他三個組件提供更好的穩定性,兼容性(AMP組件也支持Windows、UNIX等平臺) 。
- (前臺)Apache:作為LAMP架構的前端,是一款功能強大,穩定性好的Web服務器程序,該服務器直接面向用戶提供網站訪問,發送網頁,圖片等文件內容。
- (后臺)MySQL:作為LAMP架構的后端,是一款流行的開源關系數據庫系統。在企業網站、業務系統等應用中,各種賬戶信息、產品信息,客戶資料、業務數據等都可以存儲到MySQL數據庫,其他程序可以通過SQL語句來查詢,更改這些信息。
- (中間連接)PHP/Perl/Python:作為三種開發動態網頁的編程語言,負責解釋動態網頁文件,負責溝通Web服務器和數據庫系統以協同工作,并提供Web應用程序的開發和運行環境。其中PHP是一種被廣泛應用的開放源代碼的多用途腳本語言,它可以嵌入到HTML中,尤其適合于Web應用開發。
二、進行搭建
1、啟動基礎鏡像容器
掛載本地局域網yum源(數據卷) 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、容器中優化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 #修改登錄密碼,才能遠程ssh連接 /usr/sbin/sshd -D & #后臺啟動服務
②、mysql的安裝和開啟
宿主機上傳mysql壓縮包到容器(mysql-5.7.17.tar.gz、boost_1_59_0.tar.gz) docker cp 本地mysql文件路徑 ID全稱:容器路徑安裝環境依賴包 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 #刪除原配置項,再重新添加下面內容 [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設置路徑環境變量 echo 'export PATH=/var/lib/mysql/bin:/var/lib/mysql/lib:$PATH' >> /etc/profile source /etc/profile初始化數據庫 cd /var/lib/mysql/bin/ ./mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/var/lib/mysql \ --datadir=/var/lib/mysql/data添加mysqld系統服務 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" 授權遠程登錄 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、宿主機編輯PHP主頁文件并測試
vim /opt/vol/html/index.php <?php phpinfo(); ?>用另一臺虛擬機訪問頁面192.168.184.70:8888進行測試
5、安裝論壇bbs
宿主機移動論壇壓縮包移動到掛載目錄/var/www/html(Discuz_X3.4_SC_UTF8.zip) mv /opt/Discuz_X3.4_SC_UTF8.zip /opt/vol/html/ 宿主機進行解壓 unzip /opt/vol/html/Discuz_X3.4_SC_UTF8.zip 容器中進行: 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 #查看發現論壇進程的用戶名是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數據庫服務器:172.17.0.2 ###本地架設就用localhost,如何不是在在本機上就要填寫IP地址和端口號 數據庫名字:discuz 數據庫用戶名:discuz 數據庫密碼:010230 管理員賬號:admin 管理員密碼:010230
6、對LAMP+BBS的整體構架進行封裝鏡像處理
docker commit 8971ad096382 ljm/centos7_lamp_bbs總結
以上是生活随笔為你收集整理的docker镜像制作(二)——构建企业镜像LAMP+BBS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker容器的基本操作
- 下一篇: Failed to start SYSV