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. 如何创建一个基础jQuery插件
  2. tableau必知必会之学做直观的华夫饼图(Waffle Chart)
  3. 补贴背后的商业竞争,你真的懂吗?
  4. 一篇非常有用的文章-《台湾清华彭明辉教授的研究生手册》
  5. python最大公约数和最小公倍数
  6. 包装类java_Java 包装类
  7. 谈一谈对旋转矩阵的理解
  8. spring cloud config client refresh过程
  9. eclipse下androidannotations开发环境搭建
  10. 宾得k5ii_K5--K5II---K5IIs,该选哪个?(喜欢宾得机的摄友)各抒己见。
  11. AutoRunner使用说明
  12. 科创人·优锘科技COO孙岗:错误问题找不到正确答案,求索万物可视的大美未来
  13. 华为服务器串口修改密码,huawei恢复Console口密码
  14. 兼容树莓派CM4定制产品
  15. 2021-04-29 Do not nest ternary expressions
  16. 冰天雪地摄影技巧创意色彩指南
  17. 基于Android平台实现人脸识别
  18. NLP之基于TextCNN的文本情感分类
  19. VERTU全球首款WEB3手机METAVERTU伦敦亮相
  20. 创新型中药制药企业苏轩堂将在纳斯达克挂牌交易

热门文章

  1. AUTOSAR 基础知识简介
  2. 免费个人商城系统源码推荐
  3. linux环境hexo和GithubPages搭建个人博客
  4. 三菱 FX5U PLC 4轴程序。 控制松下伺服3个, 步进电机一个, 四轴自动堆垛码垛设备程序, 回原点动作用专用的原点回归指令写的
  5. PS图片中字体或图像的颜色替换
  6. java源码解读 pdf_好家伙!这一篇文章就给你讲明白了Java并发实现原理之JDK源码剖析(PDF文档)...
  7. easyui 合并列_Easyui 合并单元格_EasyUI 教程
  8. royal tsx连接闪退_Royal TSX for Mac(最强远程管理软件)
  9. P3545 [POI2012]HUR-Warehouse Store [堆贪心]
  10. 容器镜像仓库Harbor安装部署及简单使用