ͻ񻣼
ºÜ¶àµÄ¹¤×÷ºÍÈí¼þ°²×°»òά»¤»úÆ÷Óйأ¬ÕâЩ¹¤×÷»¹´¦Àí»·¾³µÄÌØÊâÐÔ¡£ÕâÐ©ÌØÊâÐÔ×÷Ϊȫ¾Ö·¶Î§µÄÒÀÀµ¹ØÏµ£¨ÈçÒÑÖªÖ÷»úÎļþϵͳµÄλÖã©¡¢Ó²±àÂëµÄ²¿Êð¼Ü¹¹£¨´úÂë»òÅäÖõĻ·¾³¼ì²é£©£¬»òÊý¾Ý¾Ö²¿ÐÔ£¨´æ´¢ÔÚÌØ¶¨µÄ²»ÔÚ²¿ÊðÌåϵ½á¹¹ÒÔÄڵĻúÆ÷ÉϵÄÊý¾Ý£©¡£Èç¹ûÄãµÄÄ¿±êÊǽ¨Á¢µÍά»¤µÄϵͳ£¬ÄãÓ¦¸ÃŬÁ¦¼õÉÙÕâЩÊÂÇé¡£
Docker ÓÐÈý¸öÌØ¶¨µÄ¹¦ÄÜ£¬ÒÔ°ïÖú½¨Á¢Óë»·¾³Î޹صÄϵͳ£º
Ö»¶ÁÎļþϵͳ
»·¾³±äÁ¿×¢Èë
´æ´¢¾í
´¦Àí¾íÊÇÒ»¸ö´óÖ÷Ì⣬ΪÁËѧϰǰÁ½¸ö¹¦ÄÜ£¬ÔÚ±¾ÎĵįäÓಿ·Ö½«¸Ä±ä¶ÔʾÀýµÄÐèÇó¡£
WordPress ʹÓÃÒ»¸öÃûΪMySQL µÄÊý¾Ý¿â³ÌÐòÀ´´æ´¢´ó²¿·ÖÊý¾Ý£¬ËùÒÔÏÈÈ·±£ÔËÐÐWordPress
µÄÈÝÆ÷ÊÇÖ»¶ÁÎļþϵͳ£¬ÊÇÒ»¸öºÃÖ÷Òâ¡£
1 Ö»¶ÁÎļþϵͳ
ʹÓÃÖ»¶ÁÎļþϵͳ²úÉúÒÔÏÂÁ½¸ö»ý¼«Ð§¹û¡£Ê×ÏÈ£¬Äã¶ÔÈÝÆ÷²»Äܸü¸ÄËüËù°üº¬µÄÎļþ²úÉúÐÅÐÄ£»Æä´Î£¬ÄãÒ²»á½øÒ»²½Ê÷Á¢ÐÅÄÈÝÆ÷ÖеĹ¥»÷ÕßÎÞ·¨ÆÆ»µÎļþ¡£
ΪÁËÔÚ¿Í»§ÏµÍ³ÉÏʹÓÃ--read-only ±êÖ¾£¬´ÓWordPress ¾µÏñ´´½¨ºÍÆô¶¯Ò»¸öÈÝÆ÷£º
docker run -d --name wp --read-only wordpress:4 |
Íê³ÉÕâЩ²½Öèºó£¬¼ì²éÈÝÆ÷ÊÇ·ñÕýÔÚÔËÐС£Äã¿ÉʹÓÃÈκÎÏÈǰ½éÉܵķ½·¨£¬Ò²¿ÉÒÔÖ±½Ó¼ì²éÈÝÆ÷ÔªÊý¾Ý¡£Èç¹ûÖ¸¶¨µÄwp
ÈÝÆ÷ÕýÔÚÔËÐУ¬ÒÔÏÂÃüÁÊä³öÎªÕæ£¬·ñÔòΪ¼Ù¡£
docker inspect --format "{{.State.Running}}" wp |
docker inspect ÃüÁÏÔʾDocker Ϊ¸ÃÈÝÆ÷±£ÁôµÄËùÓÐÔªÊý¾Ý£¨Ò»¸öJSON Îļþ£©¡£
¸ñʽѡÏî»á¸Ä±äÔªÊý¾Ý¡£³ýÁ˸ÃÈÝÆ÷µÄÔËÐÐ״̬£¬±¾ÀýÖÐÆä»áÂ˳ýÔªÊý¾ÝµÄËùÓÐ×ֶΡ£Õâ¸öÃüÁ¼òµ¥µØÊä³öΪ´íÎó¡£
ÔÚÕâÖÖÇé¿öÏ£¬ÈÝÆ÷ûÓÐÔËÐС£ÎªÁËÕÒ³öÔÒò£¬¼ì²éÈÝÆ÷ÖеÄÈÕÖ¾£º
Êä³öÊÇÕâÑùµÄ£º
error: missing WORDPRESS_DB_HOST and MYSQL_PORT_3306_TCP environment variables Did you forget to --link some_mysql_container:mysql or set an external db with -e WORDPRESS_DB_HOST=hostname:port? |
¿´ÆðÀ´WordPress ÓÐÒ»¸öMySQL Êý¾Ý¿âµÄÒÀÀµ¹ØÏµ¡£Êý¾Ý¿âÊÇÒ»¸ö³ÌÐò£¬¸ù¾Ý¼ìË÷ºÍËÑË÷·½Ê½´æ´¢Êý¾Ý¡£ºÃÏûÏ¢ÊÇ£¬Äã¿ÉÒÔʹÓÃDocker
°²×°MySQL£¬¾ÍÏñ°²×°WordPress£º
docker run -d --name wpdb \ -e MYSQL_ROOT_PASSWORD=ch2demo \ mysql:5 |
Ò»µ©Æô¶¯ºó£¬»á´´½¨Ò»¸ö²»Í¬µÄWordPress ÈÝÆ÷£¬²¢Á´½Óµ½Õâ¸öеÄÊý¾Ý¿âÈÝÆ÷ÖУº

ÔÙ¼ì²éÒ»´Î£¬WordPress ÊÇ·ñÕý³£ÔËÐУº
docker inspect --format "{{.State.Running}}" wp2 |
Äã¿ÉÒÔµÃÖªWordPress ʧ°ÜºóÖØÐÂÆô¶¯¡£¼ì²éÈÕÖ¾ÒÔÈ·¶¨ÔÒò£º
Ó¦¸ÃÓÐÀàËÆÒÔϵÄÈÕÖ¾£º
... Read-only file system: AH00023: Couldn't create the rewrite-map mutex (file /var/lock/apache2/rewrite-map.1) |
ͬÑùÊÇWordPress ʧ°ÜºóÖØÐÂÆô¶¯£¬µ«Õâ´ÎµÄÎÊÌâÊÇ£¬ËüÊÔͼдһ¸öËø¶¨Îļþµ½Ìض¨µÄλÖá£ÕâÊÇÆô¶¯µÄ±ØÒª×é³É²¿·Ö£¬²¢ÎÞÌØÊâ¡£ÔÚÕâ¸öʾÀýÖУ¬ÐèҪΪֻ¶ÁÎļþϵͳÔö¼ÓÒì³£´¦Àí¡£ÄãÐèҪʹÓþíÀ´×öÕâ¸öÒì³£´¦Àí¡£Ê¹ÓÃÏÂÃæµÄÃüÁîÆô¶¯WordPress£¬²»»áÓÐÈκÎÎÊÌ⣺ 
¸üа汾ºóÄãÄÜÓõĽű¾¿´ÉÏÈ¥ÏñÊÇÕâÑù£º
SQL_CID=$(docker create -e MYSQL_ROOT_PASSWORD=ch2demo mysql:5)
docker start $SQL_CID
MAILER_CID=$(docker create dockerinaction/ch2_mailer)
docker start $MAILER_CID
WP_CID=$(docker create --link $SQL_CID:mysql
-p 80 \
-v /run/lock/apache2/ -v /run/apache2/ \
--read-only wordpress:4)
docker start $WP_CID
AGENT_CID=$(docker create --link $WP_CID:insideweb
\
--link $MAILER_CID:insidemailer \
dockerinaction/ch2_agent)
docker start $AGENT_CID |
¹§Ï²Ä㣬ÏÖÔÚÄãÓ¦¸ÃÓÐÁËÒ»¸öÕýÔÚÔËÐеÄWordPress ÈÝÆ÷£¡Í¨¹ýʹÓÃÖ»¶ÁÎļþϵͳ£¬ÒÔ¼°Á´½ÓWordPress
µ½ÁíÒ»¸öÔËÐÐ×ÅÊý¾Ý¿âµÄÈÝÆ÷£¬¿ÉÒÔÈ·±£ÔËÐÐWordPress ¾µÏñµÄÈÝÆ÷ÓÀÔ¶²»»á¸Ä±ä¡£ÕâÒâζ×Å£¬Èç¹ûÔËÐпͻ§µÄWordPress
²©¿Í³ÌÐòµÄ»úÆ÷³öÁËÎÊÌ⣬¿ÉÇáËÉÔÚÆäËûµØ·½Æô¶¯¸ÃÈÝÆ÷µÄÁíÒ»¸ö¸±±¾¡£
µ«ÊÇÕâÒ»Éè¼ÆÓÐÁ½¸öÎÊÌâ¡£Ê×ÏÈ£¬Êý¾Ý¿âºÍWordPress µÄÈÝÆ÷ÔËÐÐÔÚͬһ¸ö»úÆ÷ÉÏ¡£Æä´Î£¬WordPress
¶ÔÖØÒªµÄÉèÖã¬ÈçÊý¾Ý¿âÃû³Æ¡¢¹ÜÀíÓû§¡¢¹ÜÀíÃÜÂë¡¢Êý¾Ý¿â¼ÓÑεÈʹÓÃĬÈÏÖµ¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬Äã¿ÉÒÔ´´½¨¶à¸ö°æ±¾µÄWordPress
Èí¼þ£¬Ã¿Ò»¸ö¿Í»§¶¼ÓÐÒ»¸öÌØÊâµÄÅäÖá£ÕâÑù×ö»áʹ¼òµ¥µÄÅäÖýű¾±ä³ÉÒ»¸öÔÚ´´½¨¾µÏñʱдÈëÎļþµÄ¹ÖÎͨ¹ýʹÓû·¾³±äÁ¿À´×¢ÈëÅäÖÃÔòÊÇÒ»¸ö¸üºÃµÄ·½Ê½¡£
2 »·¾³±äÁ¿µÄ×¢Èë
»·¾³±äÁ¿ÊÇͨ¹ýÆäÖ´ÐÐÉÏÏÂÎÄÌṩ¸ø³ÌÐòµÄ¼üÖµ¶Ô¡£Ëü¿ÉÒÔÈÃÄãÔڸıäÒ»¸ö³ÌÐòµÄÅäÖÃʱ£¬ÎÞÐëÐÞ¸ÄÈκÎÎļþ»ò¸ü¸ÄÓÃÓÚÆô¶¯¸Ã³ÌÐòµÄÃüÁî¡£
Docker ʹÓû·¾³±äÁ¿À´´«´ïÏà¹ØÐÅÏ¢£¬°üÀ¨ÈÝÆ÷µÄÊØ»¤Ñ¡Ïî¡¢ÈÝÆ÷µÄÖ÷»úÃû£¬ÒÔ¼°ÆäËûÔÚÈÝÆ÷ÖÐÔËÐгÌÐòµÄʵÓÃÐÅÏ¢¡£Docker
»¹ÎªÓû§ÌṩÁËÒ»¸ö»úÖÆ£¬¿É½«»·¾³±äÁ¿×¢Èëµ½Ò»¸öеÄÈÝÆ÷¡£ÄÇЩÆÚÍûͨ¹ý»·¾³±äÁ¿»ñÈ¡ÖØÒªÐÅÏ¢µÄ³ÌÐò£¬¿ÉÔÚÈÝÆ÷´´½¨Ê±¾Í½øÐÐÅäÖá£ÐÒÔ˵ÄÊÇ£¬WordPress
¾ÍÊÇÕâÑùÒ»¸ö³ÌÐò¡£
ÔÚÉîÈëWordPress µÄϸ½Ú֮ǰ£¬³¢ÊÔ×¢ÈëºÍ¹Û²ìÄãµÄ»·¾³±äÁ¿¡£UNIX ÃüÁîenv ÏÔʾµ±Ç°Ö´ÐÐÉÏÏÂÎÄ£¨ÖÕ¶Ë£©ÖеÄËùÓл·¾³±äÁ¿¡£Òª²é¿´×¢ÈëµÄ»·¾³±äÁ¿£¬ÇëʹÓÃÒÔÏÂÃüÁ 
--env ±êÖ¾»ò-e Ëõд£¬¿ÉÓÃÓÚ×¢ÈëÈκλ·¾³±äÁ¿¡£Èç¹û±äÁ¿ÒѾÓɾµÏñ»òDocker ÉèÖã¬Ôò¸ÃÖµ½«±»¸²¸Ç¡£ÈÝÆ÷ÄÚ²¿ÔËÐгÌÐòµÄ·½Ê½£¬¿ÉÒÔÒÀÀµÓÚÕâÖÖ±äÁ¿¡£WordPress
×ñÑÒÔÏ»·¾³±äÁ¿£º
WORDPRESS_DB_HOST WORDPRESS_DB_USER WORDPRESS_DB_PASSWORD WORDPRESS_DB_NAME WORDPRESS_AUTH_KEY WORDPRESS_SECURE_AUTH_KEY WORDPRESS_LOGGED_IN_KEY WORDPRESS_NONCE_KEY WORDPRESS_AUTH_SALT WORDPRESS_SECURE_AUTH_SALT WORDPRESS_LOGGED_IN_SALT WORDPRESS_NONCE_SALT
|
Ìáʾ Õâ¸öʾÀýºöÂÔÁËKEY ºÍSALT ±äÁ¿£¬µ«ÈκÎʵ¼ÊµÄÉú²úϵͳ¾ø¶ÔÓ¦¸ÃÉèÖÃÕâЩֵ¡£
¿ªÊ¼Ö®Ç°£¬ÄãÓ¦¸Ã½â¾öÊý¾Ý¿âºÍWordPress ÈÝÆ÷ÔÚͬһ¸ö»úÆ÷ÉÏÔËÐеÄÎÊÌâ¡£²»ÊÇʹÓÃÁ´½ÓÀ´Âú×ãWordPress
µÄÊý¾Ý¿âÒÀÀµ£¬¶øÊÇ×¢ÈëWORDPRESS_DB_HOST ±äÁ¿µÄÖµ£º
docker create --env WORDPRESS_DB_HOST=<my database hostname> wordpress:4 |
Õâ¸öʾÀý»á´´½¨£¨²¢²»Æô¶¯£©WordPress ÈÝÆ÷¡£²»¹ÜÄãÔÚÖÐÖ¸¶¨µÄÊÇʲô£¬¸ÃÈÝÆ÷¶¼»áÊÔ×ÅÁ¬ÉÏÒ»¸öMySQL
Êý¾Ý¿â¡£
ÓÉÓÚÔ¶³ÌÊý¾Ý¿â¿ÉÄܲ»»áʹÓÃÈκÎĬÈϵÄÓû§ÃûºÍÃÜÂ룬Äã¾Í±ØÐëͬʱעÈëÕâЩÉèÖ᣼ÙÉèÊý¾Ý¿â¹ÜÀíÔ±ÊÇÑøÃ¨°®ºÃÕßÇÒÍ´ºÞÇ¿ÃÜÂ룺
docker create \ --env WORDPRESS_DB_HOST=<my database hostname> \ --env WORDPRESS_DB_USER=site_admin \ --env WORDPRESS_DB_PASSWORD=MeowMix42 \ wordpress:4 |
ʹÓû·¾³±äÁ¿×¢ÈëÕâÒ»·½·¨£¬ÄܰïÖúÄãÇø·ÖWordPress ÈÝÆ÷ºÍMySQL ÈÝÆ÷Ö®¼äµÄÎïÀíÁªÏµ¡£ÓÉÓÚÊý¾Ý¿âºÍ¿Í»§µÄWordPress
ÍøÕ¾¶¼ÔÚͬһ̨»úÆ÷ÉÏ£¬ÄãÈÔÈ»ÐèÒª½â¾öÇ°ÃæÌáµ½µÄµÚ¶þ¸öÎÊÌ⡪¡ªËùÓеÄÍøÕ¾¶¼Ê¹ÓÃÏàͬµÄĬÈÏÊý¾Ý¿âÃû³Æ¡£ÄãÐèҪΪÿһ¸ö¶ÀÁ¢µÄÕ¾µãÉèÖÃÊý¾Ý¿âÃû³ÆÒÔ»·¾³±äÁ¿µÄ·½Ê½×¢È룺 
ÄãÒѾ½â¾öÁËÕâЩÎÊÌ⣬ÏÖÔÚ¿ÉÒÔÐÞ¸ÄÅäÖýű¾ÁË¡£Ê×ÏÈ£¬ÉèÖûúÆ÷Ö»ÄÜÔËÐÐÒ»¸öMySQL ÈÝÆ÷£º
DB_CID=$(docker run -d -e MYSQL_ROOT_PASSWORD=ch2demo mysql:5) MAILER_CID=$(docker run -d dockerinaction/ch2_mailer) |
ÄÇÃ´ÍøÕ¾ÅäÖýű¾½«ÊÇÕâÑùµÄ£º 
Õâ¸öнű¾½«ÎªÃ¿Ò»Î»¿Í»§Æô¶¯WordPress ʵÀýºÍ¼à¿ØÆ÷£¬²¢½«ÕâЩÈÝÆ÷ÒÔ¼°Ò»¸öµ¥¶ÀµÄÓʼþ³ÌÐòºÍMySQL
Êý¾Ý¿â±Ë´ËÁ¬½Ó¡£WordPress ÈÝÆ÷ÔÚ±»Ïú»Ù¡¢ÖØÐÂÆô¶¯¡¢Éý¼¶µÄͬʱ£¬ÍêÈ«²»Óõ£ÐÄÊý¾Ý»á¶ªÊ§¡£ÈçͼËùʾ¾ÍÊÇÕâÖּܹ¹¡£ 
ÿ¸öWordPress ºÍ¼à¿ØÆ÷ÈÝÆ÷ʹÓÃÏàͬµÄÊý¾Ý¿âºÍÓʼþ·þÎñ
¿Í»§¶Ôµ±Ç°½»¸¶µÄËùÓй¤×÷³É¹ûºÜÂúÒâ¡£µ«ÓÐÒ»¼þÊ¿ÉÄÜ»á±È½Ï·³ÈË¡£ÔÚÔçÆÚµÄ²âÊÔÖУ¬Äã·¢ÏÖ¼àÊÓÆ÷ÔÚ¸ÃÍøÕ¾²»¿ÉÓÃʱ£¬µÄÈ·¿ÉÒÔ׼ȷ֪ͨÓʼþ·þÎñÆ÷£¬µ«ÖØÐÂÆô¶¯¸ÃÍøÕ¾ºÍ¼à¿ØÆ÷ÐèÒªÊÖ¶¯ÊµÏÖ¡£ÒªÊÇϵͳÔÚ¼ì²âµ½¹ÊÕÏʱ£¬Äܳ¢ÊÔ×Ô¶¯»Ö¸´¾Í¸üºÃÁË¡£Docker
¶Ô´ËÌṩÁËÖØÆôµÄ²ßÂÔ£¬µ«ÈÔ²»¹»Îȶ¨¡£
|