Docker 學習紀錄
發表於 : 2020年 12月 3日, 00:52
用 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>