docer实战linux和windows配置mysql,redis,nginx
docer实战
文章目录
- docer实战
- 前言
- linux系统
- mysql
- 检查
- redis
- nginx
- windows系统
- mysql
- 检查
- nginx
- nginx
- 检查
- 备注
前言
如果你是用windwos做服务器的话,那就不要用docker了
- docker主要为windows10用户使用。而服务器一般都是windows server
- docker toolbox使用了VirtualBox做虚拟机,导致ip固定是192.168.99.100,而这个ip局域网是访问不了的,我没找到好的方法修改ip。
所以,我不建议windows上使用docker
linux系统
mysql
目的:创建一个mysql容器,设置root密码,创建一个名为cy的新用户,映射3306端口,挂载配置文件和数据目录到本地系统里
本地系统创建目录
cd /home
mkdir docker
cd docker
mkdir mysql
cd mysql
mkdir conf data logs
在conf目录下创建一个my.cnf文件,内容如下
[mysqld]
user=mysql
character-set-server=utf8
collation-server=utf8_general_ci
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
启动命令start.sh
docker run -d -p 3307:3306 --restart=always --privileged=true -e MYSQL_USER="cy" -e MYSQL_PASSWORD="root" -e MYSQL_ROOT_PASSWORD="root" --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/data:/var/lib/mysql -v $PWD/logs:/logs mysql:5.7
上面即可实现我们的目的
检查
进入容器:docker exec -it mysql /bin/bash
执行命令:env
输出如下:
root@81856089f317:/etc/mysql# env
MYSQL_PASSWORD=root
HOSTNAME=81856089f317
MYSQL_ROOT_PASSWORD=root
PWD=/etc/mysql
HOME=/root
MYSQL_MAJOR=5.7
GOSU_VERSION=1.7
MYSQL_USER=cy
MYSQL_VERSION=5.7.25-1debian9
TERM=xterm
SHLVL=1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
OLDPWD=/etc
_=/usr/bin/env
redis
目的:创建redis5.0版本,配置文件和数据目标挂载到本地机器上,外网可以访问
官方dockerfile
cd /home
mkdir docker
cd docker
mkdir redis
cd redis
mkdir conf data
拷贝一下redis.conf(可以下载一个redis.tar,得到redis.conf)到在conf下目录下:
如下做些修改,其它保持不变
protected-mode no
bind 0.0.0.0requirepass rootappendonly yes
redis.conf5.0全部配置,拷贝即可
bind 0.0.0.0protected-mode norequirepass rootappendonly yesport 6379tcp-backlog 511timeout 0tcp-keepalive 300daemonize nosupervised nopidfile /var/run/redis_6379.pidloglevel noticelogfile ""always-show-logo yessave 900 1
save 300 10
save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir ./replica-serve-stale-data yesreplica-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noreplica-priority 100lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush noappendfilename "appendonly.aof"# appendfsync always
appendfsync everysec
# appendfsync nono-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mbaof-load-truncated yesaof-use-rdb-preamble yeslua-time-limit 5000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512
hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128
zset-max-ziplist-value 64hll-sparse-max-bytes 3000stream-node-max-bytes 4096
stream-node-max-entries 100activerehashing yesclient-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60hz 10dynamic-hz yesaof-rewrite-incremental-fsync yesrdb-save-incremental-fsync yes
启动命令start.sh
docker run -d -p 6379:6379 --restart=always -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data --name redis redis:5.0 redis-server /etc/redis/redis.conf --appendonly yes
若报错,可以加个参数–privileged=true
nginx
目的:创建nginx1.15,挂载本地配置,数据和日志
cd /home
mkdir docker
cd docker
mkdir nginx
cd nginx
mkdir conf html logs
cd conf
mkdir conf.d
在conf目录下创建一个nginx.conf文件
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root /usr/share/nginx/html/index;index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}include conf.d/*conf;
}
注意配置
location / {root /usr/share/nginx/html/index;index index.html index.htm;
}
这里的路径必需填写绝对路径,因为配置文件和资源路径不是在同一个目录下,无法使用相对路径。
如果需要添加配置,可以在conf.d目录下创建新的server即可
启动命令start.sh
docker run -d -p 8080:80 --restart=always -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v $PWD/html:/usr/share/nginx/html -v $PWD/logs:/var/log/nginx --name nginx nginx:1.15
windows系统
前提条件:
windows10系统教育版,使用dockerToolbox做docker
准备:
- 由于:在docker里有关键用处,在挂载目录是做为分隔符,而windwos系统在盘符区别时也用冒号,所以当挂载目录时,如果是D:\tmp\docker,要修改为/D/tmp/docker</kbd。全部使用正斜杠:,而且去除冒号:
- 要挂载的目录可以在任何位置,并不是网上说的,必需在VirtualBox的虚拟目录里
注意:
在windwos上,最好不要dockerToolBox做docker容器,因为它默认映射的IP是192.168.99.100,这个IP只能本地访问,局域网都访问不了,建议使用Docker for Windows Installer
mysql
目标:创建一个mysql容器,设置root密码,创建一个名为cy的新用户,映射3306端口,挂载配置文件和数据目录到本地系统里
本地系统创建目录。数据目录和配置在本地磁盘中,想恢复数据,直接运行即可。docker不会自动删除数据库数据。
按如下创建目录结构
my.cnf文件在conf目录下
[mysqld]
user=mysql
character-set-server=utf8
collation-server=utf8_general_ci
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
启动命令start.sh
"C:/Program Files/Docker Toolbox/docker.exe" run -d -p 3307:3306 --privileged=true -e MYSQL_USER="cy" -e MYSQL_PASSWORD="root" -e MYSQL_ROOT_PASSWORD="root" --name mysql -v /c/Users/k/docker/testMysql/data:/var/lib/mysql -v /c/Users/k/docker/testMysql/conf:/etc/mysql/conf.d -v /c/Users/k/docker/testMysql/logs:/logs mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci --explicit_defaults_for_timestamp=true --innodb_use_native_aio=0
这里我成功的脚本,其中
--character-set-server=utf8 --collation-server=utf8_general_ci --explicit_defaults_for_timestamp=true --innodb_use_native_aio=0必需放在镜像后面方可执行成功
检查
nginx
和在linux上创建过程完全一样,唯一区别是挂载的目录写法
nginx
和在linux上创建过程完全一样,唯一区别是挂载的目录写法
检查
备注
从镜像搜索,里搜索镜像,下面有使用方法。
docer实战linux和windows配置mysql,redis,nginx相关推荐
- 云服务器Linux安装,配置,使用nginx
云服务器Linux安装,配置,使用nginx linux安装nginx nginx的使用 linux安装nginx 检查是否安装了GCC(可在任何目录下输入) yum list installed | ...
- linux安装和配置 mysql、redis 过程中遇到的问题记录(转)
章节目录 mysql redis linux下部署mysql和redis网上的教程很多,这里记录一下我部署.配置的过程中遇到的一些问题和解决办法. mysql ①安装完成后启动的时候报错 Starti ...
- sql跨数据库如何访问linux 下mysql_SQL跨数据库访问linux或windows的mysql和定时作业 (转)...
1.远程访问数据库大致模型 大致有2种方法: 第一种在ODBC配置好ODBC的数据源,然后与SQL链接服务器结合(SQL链接服务器不需要填写访问接口字符串) 第二种在SQL链接服务器直接配置好ODBC ...
- windows linux mysql_linux/windows环境mysql数据库安装与使用
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...
- linux mysql 打补丁_一步到位Linux中安装配置MySQL及补坑
Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...
- Linux系统Python配置MySQL详细教程
Linux系统自带Python,且根据系统自带资源来对python配置mysql:安装需要已配置好正确的yum源: 在python未配置mysql的情形下,直接import MySQLdb的提示如下 ...
- linux centos配置环境,Linux(centos6.8)配置Mysql环境
1.下载mysql安装包html https://downloads.mysql.com/archives/community/java 2.查询mysql信息node [1]查询mysql是否已经安 ...
- Linux下安装配置启动redis
Linux下安装redis Linux版本: Centos7 1. 下载redis并解压 去reids官网下载看一下最新的版本 http://download.redis.io/releases 复制 ...
- redis linux安装配置,linux下安装配置单点redis
so easy. step1. 下载资源 redis-4.0.10.tar.gz step2. 解压到 /usr/local/redis下面 tar -zxvf redis-4.0.10.tar.gz ...
- 【Linux内容】Linux系统中配置MySQL搭建主从数据库
1. 搭建主从数据库前期工作 确认主从数据库服务已经启动并且可以正常登陆.已经开放MySQL数据库访问端口号 2. 配置MySQL主库 3. 配置MySQL从库
最新文章
- 如何创建一个基础jQuery插件
- tableau必知必会之学做直观的华夫饼图(Waffle Chart)
- 补贴背后的商业竞争,你真的懂吗?
- 一篇非常有用的文章-《台湾清华彭明辉教授的研究生手册》
- python最大公约数和最小公倍数
- 包装类java_Java 包装类
- 谈一谈对旋转矩阵的理解
- spring cloud config client refresh过程
- eclipse下androidannotations开发环境搭建
- 宾得k5ii_K5--K5II---K5IIs,该选哪个?(喜欢宾得机的摄友)各抒己见。
- AutoRunner使用说明
- 科创人·优锘科技COO孙岗:错误问题找不到正确答案,求索万物可视的大美未来
- 华为服务器串口修改密码,huawei恢复Console口密码
- 兼容树莓派CM4定制产品
- 2021-04-29 Do not nest ternary expressions
- 冰天雪地摄影技巧创意色彩指南
- 基于Android平台实现人脸识别
- NLP之基于TextCNN的文本情感分类
- VERTU全球首款WEB3手机METAVERTU伦敦亮相
- 创新型中药制药企业苏轩堂将在纳斯达克挂牌交易
热门文章
- AUTOSAR 基础知识简介
- 免费个人商城系统源码推荐
- linux环境hexo和GithubPages搭建个人博客
- 三菱 FX5U PLC 4轴程序。 控制松下伺服3个, 步进电机一个, 四轴自动堆垛码垛设备程序, 回原点动作用专用的原点回归指令写的
- PS图片中字体或图像的颜色替换
- java源码解读 pdf_好家伙!这一篇文章就给你讲明白了Java并发实现原理之JDK源码剖析(PDF文档)...
- easyui 合并列_Easyui 合并单元格_EasyUI 教程
- royal tsx连接闪退_Royal TSX for Mac(最强远程管理软件)
- P3545 [POI2012]HUR-Warehouse Store [堆贪心]
- 容器镜像仓库Harbor安装部署及简单使用