docker 安裝mysql
# docker pull mysql:5.7 # docker run --name mysql5.7 -p 3306:3306 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
MySQL(5.7.19)的默認配置文件是 /etc/mysql/my.cnf 文件。
如果想要自定義配置,建議向 /etc/mysql/conf.d 目錄中創建 .cnf 文件。
新建的文件可以任意起名,只要保證後綴名是 cnf 即可。
新建的文件中的配置項可以覆蓋 /etc/mysql/my.cnf 中的配置項
進入mysql
# docker exec -it d29dd3b86303 /bin/bash root@96a49c6e7235:/# mysql -u root -p
查看配置文件
root@96a49c6e7235:/# /etc/mysql/mysql.conf.d/mysqld.cnf
複製配置文件
# docker cp 容器id:/etc/mysql/mysql.conf.d/mysqld.cnf /data/mysql/conf/
docker安裝MongoDB
docker pull mongo docker run --name my_mgdb -p 10311:27017 -v /data/mongodb/my_mgdb/data:/data/db -v /data/mongodb/my_ngdb/backup:/data/backup -v /data/mongodb/mh_mgdb/logs:/var/log/mongodb -d mongo:latest
進入MongoDB
# docker exec -it cbf07fc08d7f /bin/bash # root@cbf07fc08d7f:/# mongo
在mongo的shell裏添加用戶名密碼等
# use admin # db.createUser( { user: "myadmin", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) # db.auth("myadmin","123456"); # use my_mgdb # db.createUser( { user: "myadmin", pwd: "123456", roles: [ { role: "userAdmin", db: "my_mgdb" }, { role: "readWrite", db: "my_mgdb" },{ role: "dbOwner", db: "my_mgdb" }] } ) # db.auth("myadmin","123456");
docker安裝redis
docker pull redis:4.0 docker run -d --privileged=true -p 6379:6379 -v /data/redis/:/etc/redis/ -v /data/redis:/data --name myredis redis:4.0 redis-server /etc/redis/redis.conf --appendonly yes
docker 最新是5.0
先去下載一個 包下來得到配置文件(http://download.redis.io/releases/redis-4.0.3.tar.gz)放到 /data/redis/
--privileged=true:容器內的root擁有真正root權限,否則容器內root只是外部普通用戶權限
-v /data/redis/:/etc/redis/ 映射配置文件目錄
-v /data/redis:/data:映射數據目錄
redis-server /etc/redis/redis.conf 指定配置文件啓動redis-server進程
--appendonly yes:開啓數據持久化
進入redis指令
docker exec -it container-id redis-cli 或者 docker exec -it container-id /
redis-cli
auth myRedis #驗證密碼
docker 安裝nginx
docker pull nginx
創建掛載目錄
mkdir -p /data/nginx/{conf,conf.d,html,logs}
編寫nginx.conf配置文件,並放在文件夾中
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { 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 /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; # 文件目錄 server { listen 80; listen 443 ssl; server_name xxxx.com; #ssl on; ssl_certificate C:/nginx-1.14.0/cert/1_xxxx.com_bundle.crt; ssl_certificate_key C:/nginx-1.14.0/cert/2_xxxx.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; root C:/jifan/file_web; location / { index index.html index.php; } access_log logs/xxxx.com.log; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
啓動容器
docker run --name mynginx -d -p 80:80 \ -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ --privileged=true \ -v /data/nginx/logs:/var/log/nginx \ docker.io/nginx
如果非轉發,請求文件,目錄需要單獨掛載