标签 - Docker

Docker Mysql    2021-12-13 13:06:26    5    0    0

问题描述:

创建一个内部网络(docker network create ims_network),在这个内部网络跑了两个容器(一个mysql容器,一个python容器),从python容器中向mysql容器中写数据(insert,update)很慢,select很快。

时间:10个insert用了2秒。

问题解决:

  1. [mysqld]
  2. skip-name-resolve
  3. innodb_flush_log_at_trx_commit=0
  4. sync_binlog=0

方法解析:

skip-name-resolve
跳过域名解析,对有些场景很管用,但对我遇到的不怎么管用。
设置这个以后,速度只有一点点提升(2秒 -> 1秒9)。
innodb_flush_log_at_trx_commit=0
这个选项决定着什么时候把日志信息写入日志文件以及什么时候把这些文件物理地写(术语称为”同步”)到硬盘上。设置值0的意思是每隔一秒写一次日志并进行 同步,这可以减少硬盘写操作次数,但可能造成数据丢失; 设置值1(设置设置)的意思是在每执行完一条COMMIT命令就写一次日志并进行同步,这可以防止数据丢失,但硬盘写操作可能会很频繁; 设置值2是一般折衷的办法,即每执行完一条COMMIT命令写一次日志,每隔一秒进行一次同步。
设置这个以后,速度有很大提升(1秒9 -> 1秒)。
sync_binlog=0
每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。设为1是最安全的做法,但效率最低。docker中默认设置是1,意思是由操作系统来负责二进制日志文件的同步工作。
设置这个以后,速度有显著提升(1秒 -> 30毫秒)。

————————————————
版权声明:本文为CSDN博主「纯真-Cloud」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chunzhenzyd/article/details/82887269

Docker    2021-12-12 16:19:03    3    0    0
  • 查看运行容器:docker ps
  • 停止所有容器:docker stop $(docker ps -a -q)
  • 删除所有容器:docker rm $(docker ps -a -q)
  • 删除所有镜像:docker rmi $(docker images -q)
  • 进入docker: docker-machine ssh default
  • 查找镜像:docker search httpd
  • 查看镜像: docker images
  • 安装扩展: docker-php-ext-install pdo pdo_mysql
  • 设置端口: docker run -d -p 5000:5000 training/webapp python app.py
  • 查看日志:docker logs --tail 3000 e0864b9d33ef

  • 查找IP

  1. docker-machine ip default
  2. docker inspect 容器名称
  • php7.4
  1. docker run -itd -p 9001:9001 -v /PHP:/www --name php74 /bin/bash php:7.4-fpm
  • mysql
  1. docker run -p 3307:3306 --name mysql -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678 -d mysql:5.7
  • redis
  1. docker run -p 6379:6379 --name redis -v /Docker/redis/redis.conf:/etc/redis/redis.conf -v /Docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
  2. docker exec -it redis /bin/bash
  • mongodb
  1. docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:3.2
  • hyperf
  1. docker run
swoole Docker    2021-12-12 10:49:52    7    0    0

1.下载镜像

pull php 镜像

  1. docker pull php:7.3-alpine3.8

创建容器

  1. docker run -it --name test php:7.3-alpine3.8 sh

2.进入容器安装swoole

  1. # 安装依赖的第三方包
  2. echo http://mirrors.ustc.edu.cn/alpine/v3.7/main > /etc/apk/repositories && \
  3. echo http://mirrors.ustc.edu.cn/alpine/v3.7/community >> /etc/apk/repositories
  4. apk --no-cache add autoconf gcc g++ make openssl openssl-dev
  5. #下载swoole
  6. pecl install swoole-4.3.1
  7. #开启扩展
  8. docker-php-ext-enable swoole
  9. #查看扩展
  10. php -m
  11. #将目前环境打包成新镜像
  12. docker commit test swoole:4.3.1

3.创建swoole容器

  1. docker run -it --name swoole \
  2. -p 80:80 \
  3. -v /home/my/lujing:/pro \
  4. swoole:4.3.1 sh

4.设置基本目录(app)

  1. "autoload": {
  2. "psr-4": {
  3. "App\\": "app/"
  4. }
  5. }

执行composer dump-autoload映射app目录

创建一个http服务

  1. $http = new Swoole\Http\Server("0.0.0.0", 80);
  2. $http->on('request', function ($request,Swoole\Http\Response $response) {
  3. $response->end("<h1>hello</h1>");
  4. });
  5. $http->start();