Ubuntu_16_04_64 docker配置全过程(一)
服务器面板 2018-05-11 17:15:18

1、新装的ubuntu系统,没有update

C/C++ Code复制内容到剪贴板
  1. sudo apt-get update  

 

2、安装 git,中间会有询问,输Y

C/C++ Code复制内容到剪贴板
  1. apt-get install git  

 

3、安装composer

C/C++ Code复制内容到剪贴板
  1. apt-get install composer  

 

4、安装shell内可拖动文件上传:

C/C++ Code复制内容到剪贴板
  1. apt install lrzsz  

 

 

5、安装docker

PHP Code复制内容到剪贴板
  1. cd /    
  2. wget http://47.75.85.30/php-docker.tar.gz    
  3. tar -zxvf php-docker.tar.gz
  4. rm -f php-docker.tar.gz  

 

安装docker 参考:http://www.yoyo88.cn/study/docker/281.html

 

C/C++ Code复制内容到剪贴板
  1. curl -fsSL get.docker.com -o get-docker.sh  
  2. sudo sh get-docker.sh  
  3.   
  4.   
  5. ## 安装docker-compose  
  6. sudo pip install docker-compose  

 

安装镜像,php5.6的容器和php7.1的容器

C/C++ Code复制内容到剪贴板
  1. cd /php-docker  
  2. docker-compose up -d  
  3.   
  4. docker ps  

 

这里注意看一下容器都有没有都起来

 

 

第一种 :已优化 -> 

php7.1 + php5.6 + mysql + redis + swoole4.0

https://pan.baidu.com/s/1dnNrr0_PQXW75Wr7AzwxRA 

一键安装

 

QAQ:php-fpm CPU占用率高

执行:

mkdir -p /etc/php-fpm.d

 

QAQ:mysql CPU占用率高

mysql / my.cnf

C/C++ Code复制内容到剪贴板
  1. [client]  
  2. port=3306  
  3.   
  4. [mysql]  
  5. default-character-set=utf8  
  6.   
  7. [mysqld]  
  8. port=3306  
  9. pid-file    = /var/run/mysqld/mysqld.pid  
  10. socket      = /var/run/mysqld/mysqld.sock  
  11. datadir     = /var/lib/mysql  
  12. character-set-server=utf8  
  13. sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  
  14. bind-address = 0.0.0.0  
  15. server-id = 1  
  16. log-bin = /var/log/mysql/mysql-bin  
  17. max_allowed_packet = 500M  
  18.   
  19. ## open slow log  
  20. slow_query_log=1  
  21. slow_query_log_file=/var/log/mysql/slow.log  
  22. long_query_time=1  
  23.   
  24. open_files_limit = 102400  
  25. max_connections=300  
  26. innodb_flush_log_at_trx_commit = 2  
  27. innodb_log_file_size = 256M  
  28. innodb_log_buffer_size = 8M  
  29. innodb_buffer_pool_size = 256M  

 

 


 

第二种 : ->

php7.1 + php5.6 + mysql + redis

如果正常,忽略以下开始:


有时候会有mysql启不来的现象,如果发生了,先down掉

docker-compose down

docker-compose build --no-cache  // 重新编译

 

 

down了重来吧!

 

1、修改mysql

C/C++ Code复制内容到剪贴板
  1. vim /php-docker/docker-compose.yaml  

 

把mysql那一段改成:

PHP Code复制内容到剪贴板
  1. mysql:  
  2.     image: mysql:${MYSQL_VERSION}  
  3.     container_name: ${MYSQL_HOST}  
  4.     ports:  
  5.         - "3306:3306"  
  6.     volumes:  
  7.         - ${dockerdir}/mysql/my.cnf:/etc/mysql/my.cnf  
  8.         - ${dockerdir}/mysql/data:/var/lib/mysql  
  9.         - ${dockerdir}/mysql/log:/var/log/mysql  
  10.     environment:  
  11.         - MYSQL_DATABASE=${MYSQL_DATABASE}  
  12.         - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}  
  13.         - MYSQL_USER=${MYSQL_USER}  
  14.         - MYSQL_PASSWORD=${MYSQL_PASSWORD}  

 

2、添加配置文件:

C/C++ Code复制内容到剪贴板
  1. vim /php-docker/.env  

 

 

在下面加上

PHP Code复制内容到剪贴板
  1. # MySQL  
  2. MYSQL_VERSION=5.7.22  
  3. # container_name  
  4. MYSQL_HOST=mysql  
  5. MYSQL_DATABASE=test  
  6. MYSQL_ROOT_USER=root  
  7. MYSQL_ROOT_PASSWORD=m123456,  
  8. MYSQL_USER=dev  
  9. MYSQL_PASSWORD=dev  

 

 

docker-compose up  //不要加-d 看一下错误日志,如果不看就忽略

docker-compose up -d

docker-ps

 

支持远程连接,如果连接不上,去阿里云后台安全组规则看一下放行 3306端口

忽略结束,继续安装。 


 

修改mysql管理

PHP Code复制内容到剪贴板
  1. // 进入mysql容器  
  2. docker exec -it mysql容器ID前四位 /bin/bash  
  3.   
  4. // 连接mysql  
  5. mysql -u root -p  
  6.   
  7. ## 开始修改mysql可外部连接  
  8. use mysql;  
  9. update user set host="%" where host="127.0.0.1";  
  10. flush privileges;  
  11.   
  12.   
  13. ## 修改完以后看一下:  
  14. select host,user from user;  

 

默认mysql密码是m123456,

修改新密码:

C/C++ Code复制内容到剪贴板
  1. use mysql;  
  2. update user set authentication_string = password('root');  
  3. flush privileges;  

 

服务器本地程序 连接mysql使用host = mysql而不是localhost或者127.0.0.1

导出mysql的数据,不进入容器,直接使用:

PHP Code复制内容到剪贴板
  1. docker exec -it feba557f06b4 mysqldump -u root -p zaojiao > /php-docker/mysql/data/data/zaojiao.sql  

 

自己切换一下容器ID,还有数据库名即可。

 

 

查看php7.1的镜像ID,进入容器,开始编译安装swoole + 异步redis

C/C++ Code复制内容到剪贴板
  1. docker exec -it 容器ID前四位 /bin/bash  
  2.   
  3. apt install wget ## 安装下载方式  
  4.   
  5. ## 开始安装hiredis  
  6. wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz  
  7. tar -zxvf v0.13.3.tar.gz  
  8.   
  9. cd hiredis-0.13.3/  
  10. make -j  
  11. make install  
  12. ldconfig  
  13.   
  14.  

 

开始编译swoole扩展

C/C++ Code复制内容到剪贴板
  1. ## 开始安装swoole + Redis客户端, 下载地址在这看最新版 https://github.com/swoole/swoole-src/releases    
  2. wget https://github.com/swoole/swoole-src/archive/v2.1.3.tar.gz    
  3.     
  4.     
  5. tar -zxvf v2.1.3.tar.gz    
  6.     
  7. cd swoole-src-2.1.3/    
  8. phpize    
  9. ./configure --enable-async-redis    
  10. make clean    
  11. make -j    
  12. make install    
  13.     
  14. ## 查看phpini的位置    
  15. php --ini    
  16.     
  17. ## 查看已安装扩展    
  18. php -m    

 

编译swoole扩展出现,或前台websocket服务器无法收到实时消息

fatal error: pcre.h: No such file or directory

原因是缺少pcre,需要安装libpcre:http://www.yoyo88.cn/study/swoole/304.html

 

 

如果 没有swoole的扩展

C/C++ Code复制内容到剪贴板
  1. ## 退出容器  
  2. exit  
  3.   
  4. cd /php-docker  
  5. docker-compose restart  

 

查看一下swoole的redis是否启用

C/C++ Code复制内容到剪贴板
  1. php --ri  swoole  

 

QQ截图20180514130244.png

 

 

确认没问题以后,提交当前容器作为新的镜像

QQ截图20180514203828.png

docker ps  // 查看当前容器的ID,例:0be47785b35e

C/C++ Code复制内容到剪贴板
  1. docker commit 0be47785b35e php-docker_php7.1  

 

 


 

在php容器中安装sqlserv

https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu/step/2.html 

 

 

 

 

本文来自于:http://www.yoyo88.cn/study/control/303.html

下一篇 linux安装java
Powered by yoyo苏ICP备15045725号