日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Docker笔记:常用服务安装——Nginx、MySql、Redis(转载)

發布時間:2024/4/15 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker笔记:常用服务安装——Nginx、MySql、Redis(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載地址:https://www.cnblogs.com/spec-dog/p/11320513.html

開發中經常需要安裝一些常用的服務軟件,如Nginx、MySql、Redis等,如果按照普通的安裝方法,一般都相對比較繁瑣 —— 要經過下載軟件或源碼包,編譯安裝,配置,啟動等步驟,使用 Docker 來安裝這些服務軟件能極大地簡化安裝過程,且速度也很快。

?

本文以下操作假定你已經裝好了docker,并做好了鏡像配置。如果沒有,請參考?Docker筆記(三):Docker安裝與配置

1. MySql 安裝

1.1 下載鏡像

~$ docker pull mysql:5.7

1.2 創建掛載目錄

~$ mkdir -p apps/mysql/conf apps/mysql/data apps/mysql/logs

如上分別創建了配置文件目錄,數據存放目錄,以及日志文件目錄

1.3 啟動容器實例

~$ docker run -d -p 3306:3306 --name mysql -v /home/devuser/apps/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /home/devuser/apps/mysql/logs:/var/log/mysql -v /home/devuser/apps/mysql/data:/var/lib/mysql \
--restart=always -e MYSQL_ROOT_PASSWORD=Passw0rd mysql:5.7

其中

-d:表示在后臺運行
-p:宿主機端口與容器端口映射
–name:容器名稱
-v:宿主機目錄與容器目錄映射
–restart=always:除非被docker stop命令明確停止,否則一直嘗試重啟處于停止態的容器;如果Docker重啟,也會自動啟動容器
-e:設置環境變量,這里設置了mysql root用戶的密碼為Passw0rd

如此,MySql服務就跑起來了,很快很簡單有木有。

?

2. Redis 安裝

2.1 拉取鏡像

~$ docker pull redis:5.0.5

2.2 啟動容器

~$ docker run -d --name redis -p 6379:6379 -v /home/devuser/apps/redis/data:/data \
--restart=always redis:5.0.5 redis-server --appendonly yes --requirepass "Passw1rd"

-p, -v 與上同,不贅述
redis-server –appendonly yes : 在容器啟動時執行redis-server命令,并打開redis持久化配置
–requirepass:設置密碼

2.3 連接

~$ docker exec -it redis redis-cli -h 172.17.0.4 -p 6379 -a Passw1rd Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 172.17.0.4:6379> keys * (empty list or set) 172.17.0.4:6379>

?這種方式把密碼暴露了,其它登錄用戶通過history即可看到密碼,不是太安全。可改用如下方式,

~$ docker exec -it redis redis-cli 127.0.0.1:6379> 127.0.0.1:6379> keys * (error) NOAUTH Authentication required. 127.0.0.1:6379> auth 'Passw1rd' OK 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379>

?

3. Nginx 安裝

3.1 拉取鏡像

~$ docker pull nginx

不加標簽默認會拉取最新的(latest)鏡像

3.2 創建目錄

~$ mkdir -p apps/nginx/html apps/nginx/logs apps/nginx/conf

3.3 先不指定映射路徑啟動一個容器

~$ docker run -d -p 80:80 --name nginx nginx 1fdcd13457a6eaacb511878e10d84ffbe48fe63fd1fb3705f58b2d4195b151d8

這里如果直接指定映射路徑運行會報錯,

~$ docker run -d -p 80:80 --name nginx -v ~/apps/nginx/html:/usr/share/nginx/html -v ~/apps/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/apps/nginx/logs:/var/log/nginx nginx dab56c13f9e76aad37fcf73411c78d495a6466f1c0d214949650dbae44adddf4 docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/home/devuser/apps/nginx/conf/nginx.conf\\\" to rootfs \\\"/home/docker_image/overlay2/e40ccaf4d845a9af92487b47cbc4d505c5c776800ef8887c5b43833b10661427/merged\\\" at \\\"/home/docker_image/overlay2/e40ccaf4d845a9af92487b47cbc4d505c5c776800ef8887c5b43833b10661427/merged/etc/nginx/nginx.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

3.4 將運行容器的配置文件復制到宿主機目錄下?

~$ docker cp 1fdcd13457a6:/etc/nginx/nginx.conf ~/apps/nginx/conf/

3.5 刪除容器并重新運行

~$ docker stop 1fdcd1345 ~$ docker rm 1fdcd1345 ~$ docker run -d -p 80:80 --name nginx -v ~/apps/nginx/html:/usr/share/nginx/html -v ~/apps/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/apps/nginx/logs:/var/log/nginx nginx

3.6 更新配置后重新加載

~$ docker kill -s HUP nginx

類似于?nginx -s reload

轉載于:https://www.cnblogs.com/huangzelin/p/11320840.html

總結

以上是生活随笔為你收集整理的Docker笔记:常用服务安装——Nginx、MySql、Redis(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。