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 ls

5.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
done

5.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.conf

5.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 1

5.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部署项目 入门版相关推荐

  1. IDE工具(45) idea使用Docker部署项目到服务器的全过程

    一.前言 温馨小提示: 案例源码demo放文章最后了 基本环境 idea CentOS7.3服务器 docker springboot项目 二.服务器配置docker远程连接 可参考小编的另外一篇文章 ...

  2. 【7】idea集成docker部署项目

    [7]idea集成docker部署项目 一.修改docker配置 1.1 修改服务器docker.service服务信息 允许其他主机远程访问服务器的docker vim /usr/lib/syste ...

  3. (四)docker部署项目

    docker部署项目 基于ubuntu16.4+python3的flask web项目,使用gunicorn启动,项目运行时需要加载一些动态链接库,并且项目在运行时需要多个后缀为.vpo的授权文件,项 ...

  4. docker部署项目自动化脚本

    docker部署项目脚本,脚本会完成容器停止,删除,镜像删除,镜像构造,运行容器等一系列操作 该脚本配合jenkins使用,真的舒服 #!/bin/bash echo "开始执行脚本&quo ...

  5. docker部署项目 dockerfile 实战 SpringBoot、flask

    1 SpringBoot微服务打包Docker镜像 1.1 构建springboot项目 package com.example.springboot.demo;import org.springfr ...

  6. Spring Boot细节挖掘(Docker部署项目)

    如今 Docker 的使用已经非常普遍,特别是在一线互联网公司,使用 Docker 技术可以帮助企业快速水平扩展服务,从而达到弹性部署业务的能力.在云服务概念兴起之后,Docker 的使用场景和范围进 ...

  7. 上线项目 Docker部署项目到服务器总结

    文章目录 Docker简介 Docker为什么出现? 安装Docker 阿里云镜像加速 找到镜像加速器 配置使用 回顾HelloWorld流程 底层原理 Docker的常用命令 部署项目 1.安装do ...

  8. docker部署项目通过127.0.0.1访问数据库:Connection refused

    背景说明 同一台机子(以linux为例)部署以下项目.数据库 docker部署mysql.mongo.postgresql.clickhouse数据库 docker部署spring-boot项目.py ...

  9. 自定义404页面并打包docker部署项目

    前言 最近看了docker的用法,对于容器的理解感觉还行,当是自我感觉总是不靠谱的.所以现在就来使用docker容器实际部署一下项目,检验自己对于知识的掌握. SpringBoot项目和docker的 ...

最新文章

  1. 剑指offer:面试题25. 合并两个排序的链表
  2. OC-@dynamic 关键字
  3. android 键盘遮盖输入框_Android各种键盘挡住输入框解决办法
  4. 会话跟踪技术之HttpSession
  5. java jml_JML 入门
  6. [Discuz插件] HUX虚拟社区 3.0.9绿色版(huxcity)+打工模块
  7. 未来机器人哆拉A梦身上的高科技程序应用
  8. python 网易_python发送网易邮件
  9. 用了这么久的 Chrome,你不会还没掌握这个功能吧?
  10. 万能地图下载器标绘线的参数说明
  11. 第三方调用微信支付接口
  12. mysql 闰年,[MySQL]--gt;查询5天之内过生日的同事中的闰年2月
  13. java this逃逸_java this引用逃逸详解
  14. windows server 2012 NIC组合---概念
  15. 云锁和安全狗哪个好 Bypass阿里云盾、百度云加速、安全宝、安全狗、云锁、360主机卫士SQL注入防御-系统/上网/安全
  16. c语言智能手环程序,c+智能手环怎么用 c+智能手环使用图文教程
  17. 一文读懂什么是云服务器,和本地服务器的区别,云服务的用途,华为云服务器的获取
  18. 新手也可以制作出大片的效果——Movavi Video Editor 15 Plus Mac
  19. pytorch一小时速成
  20. 与全球外国人即时聊天的网站

热门文章

  1. Linux - 收藏集 - 掘金
  2. 严定贵:互联网金融的速度与激情
  3. 您试图从目录中执行CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序
  4. 《ASP.NET Web 站点高级编程》勘误 Part 3
  5. 94授权登录steam怎么用_Steam手机令牌如何绑定,绑定后好处多多
  6. smarty半小时快速上手入门教程
  7. hibernate 多对一(Many-to-one)单向关联
  8. 使用 Android NDK 的交叉编译工具链移植 C/C++ 项目到安卓平台
  9. 捉虫记 C++转java Java中equals和==的区别
  10. golang常见内存泄漏