docer实战

文章目录

    • docer实战
  • 前言
  • linux系统
    • mysql
      • 检查
    • redis
    • nginx
  • windows系统
    • mysql
    • 检查
    • nginx
    • nginx
      • 检查
  • 备注

前言

如果你是用windwos做服务器的话,那就不要用docker了

  1. docker主要为windows10用户使用。而服务器一般都是windows server
  2. 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

准备:

  1. 由于:在docker里有关键用处,在挂载目录是做为分隔符,而windwos系统在盘符区别时也用冒号,所以当挂载目录时,如果是D:\tmp\docker,要修改为/D/tmp/docker</kbd。全部使用正斜杠:,而且去除冒号:
  2. 要挂载的目录可以在任何位置,并不是网上说的,必需在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相关推荐

  1. 云服务器Linux安装,配置,使用nginx

    云服务器Linux安装,配置,使用nginx linux安装nginx nginx的使用 linux安装nginx 检查是否安装了GCC(可在任何目录下输入) yum list installed | ...

  2. linux安装和配置 mysql、redis 过程中遇到的问题记录(转)

    章节目录 mysql redis linux下部署mysql和redis网上的教程很多,这里记录一下我部署.配置的过程中遇到的一些问题和解决办法. mysql ①安装完成后启动的时候报错 Starti ...

  3. sql跨数据库如何访问linux 下mysql_SQL跨数据库访问linux或windows的mysql和定时作业 (转)...

    1.远程访问数据库大致模型 大致有2种方法: 第一种在ODBC配置好ODBC的数据源,然后与SQL链接服务器结合(SQL链接服务器不需要填写访问接口字符串) 第二种在SQL链接服务器直接配置好ODBC ...

  4. windows linux mysql_linux/windows环境mysql数据库安装与使用

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...

  5. linux mysql 打补丁_一步到位Linux中安装配置MySQL及补坑

    Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...

  6. Linux系统Python配置MySQL详细教程

    Linux系统自带Python,且根据系统自带资源来对python配置mysql:安装需要已配置好正确的yum源: 在python未配置mysql的情形下,直接import MySQLdb的提示如下 ...

  7. linux centos配置环境,Linux(centos6.8)配置Mysql环境

    1.下载mysql安装包html https://downloads.mysql.com/archives/community/java 2.查询mysql信息node [1]查询mysql是否已经安 ...

  8. Linux下安装配置启动redis

    Linux下安装redis Linux版本: Centos7 1. 下载redis并解压 去reids官网下载看一下最新的版本 http://download.redis.io/releases 复制 ...

  9. 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 ...

  10. 【Linux内容】Linux系统中配置MySQL搭建主从数据库

    1. 搭建主从数据库前期工作 确认主从数据库服务已经启动并且可以正常登陆.已经开放MySQL数据库访问端口号 2. 配置MySQL主库 3. 配置MySQL从库

最新文章

  1. Theano 中文文档 0.9 - 7.2.5 循环
  2. tablueau地图标记圆形_R语言在线地图神器:Leaflet for R包(三) 符号标记
  3. Excel的导入与导出(POI)
  4. iZotope系列音频软件如何卸载操作指南
  5. oracle系统FA调整折旧年限,Oracle财务管理系统培训手册.doc
  6. Python(pybrain模块)搭建神经网络BPNN
  7. Simulink中powergui的FFT分析怎么用m文件实现?
  8. 环境猫室内监测仪——您的空气智能管家
  9. 炉石传说的代码是Java吗,hearthstone: 炉石传说,JAVA模拟器(HearthStone Simulator for Java)...
  10. simulink提示错误Invalid OutputTimes specified in the Configuration Parameters dialog for block diagram
  11. 关于麒麟座开发板串口打印乱码与其它工程用官方源码出问题的解决方案
  12. 《Python基础知识-4判断和循环语句》
  13. 【MMDetection3D】MVXNet踩坑笔记
  14. 文件上传属性accept
  15. 增加tensor维度 torch
  16. 显示器AutoColor原理(TSUM系列芯片)
  17. OpenCV C++ imread填写路径下有图片却读不出 求助!!!!!!
  18. ECMAScript 6-11新特性(笔记)
  19. python面向对象2
  20. 我不喜欢孤单,但是我喜欢享受孤独!

热门文章

  1. Android项目迁移到Androidx经验总结
  2. docker学习1--docker基础学习
  3. 【论文阅读】DeepIM: Deep Iterative Matching for 6D Pose Estimation
  4. 数字ic设计自学ing
  5. Linux #! /bin/sh的意思
  6. 两点GPS经纬度获取局部位置的理论
  7. PCB原理图绘制(种草立创eda)
  8. CSGO地图人物模型配置
  9. java造成capturing lambda后需要注意的事情
  10. 微信企业号开发源码Java编写,懒人开发一键式部署项目,WeChatEnterprise框架你值得拥有