docker部署项目 入门版
生活随笔
收集整理的這篇文章主要介紹了
docker部署项目 入门版
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 通用
1.1 權限
開啟掛載目錄權限
#開啟目錄權限 chmod a+rwx /usr/local/test#開啟docker掛載權限 chmod a+rw /var/run/docker.sock所有的docker容器內的卷,沒有指定目錄的情況下都是在/var/lib/docker/volumes/xxx/_data
1.2 可視化
- portainer(先用這個)
- Rancher(CI/CD再用)
什么是portainer?
Docker圖形化界面管理工具!提供一個后臺面板供我們操作
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer# 測試 http://42.192.168.139:8088/平時不適用,可以測試玩玩、
學習參考:
https://www.bilibili.com/video/BV1og4y1q7M4
2 部署nginx
[root@vitloud home]# docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 16148 [OK] # 下載 docker pull nginx# 運行測試 # -d: 后臺運行 # -name: 給容器命名 # -p: 宿主機端口:容器內部端口 # -v: /宿主機路徑:容器內路徑docker run -d \ -v cnginx:/etc/nginx \ -p 3344:80 \ --name vitcloud-nginx nginx# 測試 curl localhost:3344# 進入容器nginx01 [root@vitloud home]# docker exec -it nginx01 /bin/bash # 查找nginx配置路徑 root@e7979f326715:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx思考問題:我們每次改動nginx配置文件,都需要進入容器內部?十分麻煩,我要是可以在容器外部提供一個映射路徑,達到在容器修改文件名,容器就可以自動修改?-v 數據卷
3 部署tomcat
# 官方的使用 docker run -it --rm tomcat:9.0# 我們之前的啟動都是后臺,停止了容器之后,容器還是可以查到 docker run -it rm. 一般用來測試,用完刪除# 下載再啟動 docker pull tomcat# 啟動運行 # 訪問地址:域名:3355 docker run -d -p 3355:8080 -name tomcate01 tomcat# 進入容器 [root@vitloud home]# docker exec -it tomcate01 /bin/bash# 部署網站 cd /usr/local/tomcat/webapps cp -r webapps.dist/* webapps# 發現問題:1、linux命令少了,2、沒有webapps,阿里云鏡像的原因,默認是最小鏡像,所有不必要的都剔除掉思考問題:我們以后部署項目,如果每次都要進入容器是不是十分麻煩?我要是可以在容器外部提供一個映射路徑,webapps我們在外部放置項目,就自動同步到內部就好了。
4 部署MySQL
# 后去鏡像 docker pull mysql:5.7# 運行容器,需要做數據掛載!(需要配置密碼) # 官方測試 # docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag# -d: 后臺運行 # -p: 端口映射 暴露端口:容器端口 # -v: 卷掛載 # -e: 環境配置 # --name: 容器名字 docker run -d \ -p 3310:3306 \ -v /home/mysql/conf:/etc/mysql/conf.d \ -v /home/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=root \ --name mysql01 mysql:5.7可以通過Navicat連接測試
刪除容器 數據也在
5 實戰:部署Redis集群
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wIDQub8X-1643381954752)(image-20220121230315954.png)]
5.1 配置網卡
# 創建網卡 docker network create redis --subnet 172.38.0.0/16 # 查看網卡 docker network ls5.1 通過腳本創建redis配置文件
for port in $(seq 1 6); \ do mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/node-${port}/conf/redis.conf cat << EOF >>/mydata/redis/node-${port}/conf/redis.conf port 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.38.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done5.3 啟動 docker redis 容器
# -p: 端口映射 外部端口:內部端口 # -d: 后臺運行 # --net: 使用redis網絡 # -ip: 綁定ip docker run -p 6371:6379 -p 16371:16379 --name redis-1 \ -v /mydata/redis/node-1/data:/data \ -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6372:6379 -p 16372:16379 --name redis-2 \ -v /mydata/redis/node-2/data:/data \ -v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6373:6379 -p 16373:16379 --name redis-3 \ -v /mydata/redis/node-3/data:/data \ -v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6374:6379 -p 16374:16379 --name redis-4 \ -v /mydata/redis/node-4/data:/data \ -v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6375:6379 -p 16375:16379 --name redis-5 \ -v /mydata/redis/node-5/data:/data \ -v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.confdocker run -p 6376:6379 -p 16376:16379 --name redis-6 \ -v /mydata/redis/node-6/data:/data \ -v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf5.4 進入容器并創建集群
# 進入容器 docker exec -it redis-1 /bin/sh # 創建集群 # 集群切片:--cluster-plicas 1 redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 15.5 連接測試
# -c: 集群 redis-cli -c # 查看集群信息 127.0.0.1:6379> cluster info # 查看集群節點 cluster nodesset a b -> Redirected to slot [15495] located at 172.38.0.13:6379 OK# 模擬redis-3宕機 172.38.0.13 docker stop redis-3使用dokcer后,所有的技術都會慢慢遍的簡單
7 部署es+kibana
elasticsearch
es 暴露端口很多
es 十分耗內存
es的數據一般需要放置到安全目錄!掛載
# --net somenetwork ? 網絡配置# 啟動 docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2# 會很卡 docker stats # 查看cpu的狀態# 趕緊關閉,在呢個價內存的限制,修改配置文件 -e 環境配置修改 # -e ES_JAVA_OPTS="-Xms64 -Xmx512m" docker run -d --name elasticsearch01 --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2# 測試是否成功 curl localhost:9200總結
以上是生活随笔為你收集整理的docker部署项目 入门版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文献检索基本规则
- 下一篇: Docker命令基础 简洁版本