Ubuntu 20.04.1 LTS (Focal Fossa)
-
leeyc
- 文章: 81
- 註冊時間: 2020年 10月 23日, 01:54
文章
由 leeyc »
用 Docker 安裝 apache2.0 php5.3.3 mysql5.5
youtube: https://www.youtube.com/watch?v=-_ZghrWcRqU&t=53s
安裝 docker
sudo apt install docker docker-compose
1、docker服務自動重啟設定
sudo systemctl enable docker.service
如果要避免sudo在運行docker命令時鍵入任何內容,請將用戶名添加到docker組中
$ sudo usermod -aG docker ${USER}
要應用新的組成員身份,請註銷服務器並重新登錄,或鍵入以下命令:
$ su - ${USER}
通過輸入以下命令確認您的用戶已添加到docker組:
$ id -nG
sudo docker logs 8cda --tail 500 ==>看LOG
find /var/lib/docker/containers/ -type f -name "*.log" -delete
這個指令可以刪掉全部的docker log
複製檔案到容器
$ docker cp php-5.3.3-49.el6.src.rpm finance:/
docker pull ubuntu:19.10
docker run -ti --name lamp ubuntu:19.10 bash
docker commit lamp lamp:ver1.0
docker run -ti --rm -p 8080:80 lamp:ver1.0 bash
docker start lamp
docker exec -ti lamp bash
sudo docker run -d --name apache --restart unless-stopped -p 80:80 -v /root/www:/var/www/html --link mariadb:mariadb php:7.2-apache
# mkdir -p www
# sudo docker pull php:5.3-apache
# docker run -d --name apache -p 16001:80 php:5.3-apache
# docker exec -it apache /bin/bash
# docker exec -it nextcloud /bin/bash
# docker exec -it mysql55 /bin/bash
version: '3.3'
services:
db:
build:
context: ./mysql
dockerfile: Dockerfile
container_name: mysql55
environment:
MYSQL_ROOT_PASSWORD: rootpasswd
ports:
- "3306:3306"
volumes:
- ./mysql/data:/var/lib/mysql
- "/etc/localtime:/etc/localtime:ro"
restart: always
web:
build:
context: ./www
dockerfile: Dockerfile
container_name: apache
ports:
- "80:80"
- "443:443"
volumes:
- "./www:/var/www/html"
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
restart: always
depends_on:
- db
app:
image: nextcloud
container_name: nextcloud
ports:
- "8080:80"
volumes:
- "./nextcloud:/var/www/html"
restart: always
depends_on:
- db
wordpress:
image: wordpress
container_name: wordpress
restart: always
ports:
- 8000:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: leeyc
WORDPRESS_DB_PASSWORD: leeycpasswd
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wordpress:/var/www/html
# httpd-tools
./www/Dockerfile
FROM centos:centos6
MAINTAINER Assyrus
RUN yum -y update; yum clean all
RUN yum -y install epel-release
RUN yum clean all
RUN yum -y install samba-client rsync wget httpd mod_ssl php php-mbstring php-gd php-imap php-intl php-ldap php-mssql php-mysql php-odbc php-pdo php-pear php-xml php-xmlrpc mysql zip unzip
RUN yum clean all
RUN yum -y reinstall glibc-common
#RUN yum -y install subversion subversion-tools mod_dav_svn
#RUN echo "Apache HTTPD" >> /var/www/html/index.html
ADD php.ini /etc/
#ADD ssl.conf /etc/httpd/conf.d/
#ADD subversion.conf /etc/httpd/conf.d/
EXPOSE 80
CMD exec /usr/sbin/apachectl -D FOREGROUND
./mysql/Dockerfile
FROM mysql:5.5
RUN apt-get update
RUN apt-get install vim -y
ADD my.cnf /etc/mysql/
EXPOSE 3306
apt-get update
apt-get install vim
/etc/mysql/my.cnf
lower_case_table_names=1
docker restart mysql55
docker-compose.yml
version: '3.3'
services:
db:
image: mysql:5.5
container_name: mysql55
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpasswd
ports:
- "3306:3306"
volumes:
- ./mydata/:/var/lib/mysql
- ./etc/mysql:/etc/mysql
- "/etc/localtime:/etc/localtime:ro"
web:
build:
context: ./www
dockerfile: Dockerfile
container_name: apache
ports:
- "80:80"
- "443:443"
volumes:
- "./www:/var/www/html"
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
#- "./lib:/usr/local/lib"
#- "./logs:/var/log/apache2"
#- "./conf:/etc/apache2/sites-enabled"
#network_mode: "host"
restart: always
depends_on:
- db
./www/Dockerfile
FROM centos:centos6
MAINTAINER Assyrus
RUN yum -y update; yum clean all
RUN yum -y install epel-release; yum clean all
RUN yum -y install samba-client rsync wget httpd mod_ssl php php-mbstring php-gd php-imap php-intl php-ldap php-mssql php-mysql php-odbc php-pdo php-pear php-xml php-xmlrpc mysql zip unzip; yum clean all
RUN yum -y reinstall glibc-common
#RUN echo "Apache HTTPD" >> /var/www/html/index.html
ADD php.ini /etc/
EXPOSE 80
CMD exec /usr/sbin/apachectl -D FOREGROUND
chmod 777 -R etc
chmod 777 -R data
1、docker服務自動重啟設定
systemctl enable docker.service
/usr/local/etc/php/conf.d/tzone.ini
[Date]
date.timezone = "Asia/Taipei"
# docker exec -i mysql55 mysql -uroot -prootpasswd centerdb < centerdb20201005.sql
flush privileges;
service mysql stop
service apache2 restart
# docker commit -m "Added php.ini" -a "leeyc" e1418153eeff php:53-apache-v2
docker tag php:53-apache-v2 leeyichung/php:53-apache-v2
try {
$user = "leeyc";
$pass = "leeycpasswd";
$host = "db";
$dbh = new PDO("mysql:host=$host;dbname=centerdb", $user, $pass);
foreach($dbh->query('SELECT * from bw_acode') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
/etc/apache2/sites-available# a2ensite 000-default.conf
## docker push images
# docker login
Username: leeyichung
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/referenc ... ials-store
Login Succeeded
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
web_web latest 927feea7bfcb 24 minutes ago 1.17GB
web_db latest 55221240336b 38 minutes ago 252MB
mysql 5.5 d404d78aa797 17 months ago 205MB
centos centos6 d0957ffdf8a2 19 months ago 194MB
# docker tag 55221240336b leeyichung/mysql55:firsttry
# docker push leeyichung/mysql55
# docker tag 927feea7bfcb leeyichung/apache2_php533:firsttry
# docker push leeyichung/apache2_php533
// 將容器儲存 image
# docker commit app
# docker tag 9bfd7cf23423 leeyichung/app:latest
# docker push leeyichung/app:latest
## docker-compose.yml
version: '3.3'
services:
db:
image: leeyichung/mysql55:firsttry
container_name: mysql55
environment:
MYSQL_ROOT_PASSWORD: rootroot
ports:
- "3306:3306"
volumes:
- ./mysql/data:/var/lib/mysql
- "/etc/localtime:/etc/localtime:ro"
restart: always
web:
image: leeyichung/apache2_php533:firsttry
container_name: apache
ports:
- "80:80"
- "443:443"
volumes:
- "./www:/var/www/html"
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
restart: always
depends_on:
- db
app:
image: leeyichung/app:latest
container_name: app
ports:
- "8080:80"
volumes:
- "./html:/var/www/html"
restart: always
depends_on:
- db
# docker exec -it apache /bin/bash
mkdir /var/www/bak
vi /etc/httpd/conf/httpd.conf
CustomLog logs/access_log combined
RewriteEngine On
RewriteLog logs/rewrite_log
RewriteLogLevel 4
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
TransferLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log 86400"
vi /etc/httpd/conf.d/directory.conf
#Alias /bak/ "/var/www/bak/"
<Directory "/var/www/html/bak">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Allow from all
Order allow,deny
AuthType Basic
AuthName "MyBak"
AuthUserFile /var/www/html/bak/.htaccess
Require valid-user
</Directory>
Alias /fdata/ "/var/www/html/fdata/"
<Directory "/var/www/html/fdata">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Allow from all
Order allow,deny
</Directory>
# docker restart apache
root@b:/web# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a06a836ccb91 web_web "/bin/sh -c 'exec /u…" 22 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp apache
4f36ed436b79 web_app "docker-php-entrypoi…" 2 weeks ago Up 8 hours 0.0.0.0:8080->80/tcp app
67c9bc26af7d web_db "docker-entrypoint.s…" 3 weeks ago Up 8 hours 0.0.0.0:3306->3306/tcp mysql55
root@b:/web#
// 將容器儲存 image
# docker commit apache
root@b:/web# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 5c6db1065813 19 seconds ago 1.17GB
leeyichung/app firsttry eba868ab68cc 2 weeks ago 415MB
web_app latest eba868ab68cc 2 weeks ago 415MB
web_web latest 4f6d0941e229 3 weeks ago 1.17GB
web_db latest 993dfa742811 3 weeks ago 252MB
php 7.4-apache aaf1fe8553ca 4 weeks ago 414MB
mysql 5.5 d404d78aa797 18 months ago 205MB
centos centos6 d0957ffdf8a2 20 months ago 194MB
root@b:/web#
# docker tag 5c6db1065813 leeyichung/apache:latest
# docker push leeyichung/apache:latest
web:
image: leeyichung/apache:latest
container_name: apache
ports:
- "80:80"
- "443:443"
volumes:
- "./www:/var/www/html"
- "./bak:/var/www/bak"
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
restart: always
depends_on:
- db
## 中央保全HR Docker 設定檔 ###################
leeyc@TS100-E9-PI4:/web$ cat docker-compose.yml
version: '3.3'
services:
web:
image: leeyichung/apache:php53
container_name: apache
volumes:
- "./www:/var/www/html"
- "./www/bak:/var/www/html/bak"
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
ports:
- "80:80"
- "443:443"
network_mode: "host"
restart: always
depends_on:
- db
db:
image: mysql:5.5
container_name: mysql55
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpasswd
ports:
- "3306:3306"
volumes:
- ./mydata/:/var/lib/mysql
- "/etc/localtime:/etc/localtime:ro"
###################################
Alias /fdata/ "D:/AppServ/www/fdata/"
<Directory "D:/AppServ/www/fdata/">
Options FollowSymLinks MultiViews
AllowOverride None
Allow from all
Order allow,deny
#AuthType Basic
#AuthName "MyBak"
#AuthUserFile d:\AppServ\bak\.htaccess
#Require valid-user
</Directory>
Alias /bak/ "d:/AppServ/bak/"
<Directory "d:/AppServ/bak/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Allow from all
Order allow,deny
AuthType Basic
AuthName "MyBak"
AuthUserFile d:\AppServ\bak\.htaccess
Require valid-user
</Directory>