• Docker部署服务(实战)


    dockerhub 镜像查询

    地址:https://hub.docker.com/

    Nginx

    搜索镜像

    dockerhub

    地址:https://hub.docker.com/

    使用search

    docker search nginx
    

    拉取镜像

    docker pull nginx
    

    运行测试

    docker run -d -p 8082:80 nginx
    

    解释

    -d :后台模式运行

    -p 8082:80 :将主机8082端口映射到容器端口80。可以输入多个映射

    注:

    用完就删除的模式

    docker run -it --rm nginx  #包含搜索、拉取、运行、移除
    

    mysql

    搜索镜像

    docker search mysql
    

    拉取镜像

    docker pull mysql:8.0
    

    运行

    docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306  -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql  --name mysql01  mysql:8.0
    

    数据库之间共享文件

    docker run -d  -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 --name mysql02 --volumes-from mysql01   mysql:8.0
    

    解释

    -d :后台模式运行

    -p 3307:3306:将主机3307端口映射到容器端口3306。可以输入多个映射

    -v 主机目录:容器目录 :挂载,将主机目录和容器目录双向绑定

    -e:配置环境

    –name :容器名字

    –volume-from 容器间文件共享

    可视化工具

    portainer

    Docker 图形化管理工具,提供后台操作

    拉取
    docker pull portainer/portainer
    
    启动
    docker run -p 9000:9000 -p 8000:8000 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -d portainer/portainer
    

    解释:

    –restart :启动方式

    -v :挂载(将容器文件和主机文件绑定)

    访问

    http://ip:9000/

    1. 创建密码
    2. 访问本地(Local)

    Redis集群(3主3从)

    创建网卡

    docker network create redis  --subnet 172.38.0.0/16
    

    创建Redis脚本

    for port in $(seq 1 6);\
    do \
    mkdir -p /usr/local/redis/node-${port}/conf
    touch /usr/local/redis/node-${port}/conf/redis.conf
    cat << EOF >/usr/local/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
    

    启动

    #服务一(Redis-1)
    docker run -p 6371:6379 -p 16371:16379 --name redis-1  -v /usr/local/redis/node-1/data:/data  -v /usr/local/redis/node-1/conf/redis.conf:/etc/redis/redis.conf  -d --net redis --ip 172.38.0.11 redis:7.0.5-alpine redis-server /etc/redis/redis.conf
    
    #服务二(Redis-2)
    docker run -p 6372:6379 -p 16372:16379 --name redis-2  -v /usr/local/redis/node-2/data:/data  -v /usr/local/redis/node-2/conf/redis.conf:/etc/redis/redis.conf  -d --net redis --ip 172.38.0.12 redis:7.0.5-alpine redis-server /etc/redis/redis.conf
    
    #服务三(Redis-3)
    docker run -p 6373:6379 -p 16373:16379 --name redis-3  -v /usr/local/redis/node-3/data:/data  -v /usr/local/redis/node-3/conf/redis.conf:/etc/redis/redis.conf  -d --net redis --ip 172.38.0.13 redis:7.0.5-alpine redis-server /etc/redis/redis.conf
    
    #服务四(Redis-4)
    docker run -p 6374:6379 -p 16374:16379 --name redis-4  -v /usr/local/redis/node-4/data:/data  -v /usr/local/redis/node-4/conf/redis.conf:/etc/redis/redis.conf  -d --net redis --ip 172.38.0.14 redis:7.0.5-alpine redis-server /etc/redis/redis.conf
    
    #服务五(Redis-5)
    docker run -p 6375:6379 -p 16375:16379 --name redis-5  -v /usr/local/redis/node-5/data:/data  -v /usr/local/redis/node-5/conf/redis.conf:/etc/redis/redis.conf  -d --net redis --ip 172.38.0.15 redis:7.0.5-alpine redis-server /etc/redis/redis.conf
    
    #服务六(Redis-6)
    docker run -p 6376:6379 -p 16376:16379 --name redis-6  -v /usr/local/redis/node-6/data:/data  -v /usr/local/redis/node-6/conf/redis.conf:/etc/redis/redis.conf  -d --net redis --ip 172.38.0.16 redis:7.0.5-alpine redis-server /etc/redis/redis.conf
    

    创建集群

    进入容器

    docker exec -it redis-1 /bin/sh
    

    创建集群

    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
    

    输入yes

    测试

    redis-cli -c #-c为集群启动模式
    cluster info   #查看集群信息
    

    Springboot项目打包成镜像

    编写Dockerfile文件

    FROM java:8
    VOLUME /demo
    COPY *.jar demo.jar
    ENTRYPOINT ["java","-jar","demo.jar"]
    

    上传

    将项目打包文件上传到服务器demo目录下,只上传打包文件和Dockerfile文件

    生成镜像

    docker build -t 镜像名 .
    

    启动项目

    docker run -d -p 8080:8080 镜像名
    
  • 相关阅读:
    leetcode 26. 删除有序数组中的重复项(实现unique函数)
    Python+django+vue信息技术学习网站
    第三章 MATLAB的使用
    vue之Error: Unknown option: .devServer.
    GFP-GAN学习笔记
    贪心算法(三)——最佳合并模式
    外汇交易新手福利:入门必看,快速提升交易技能
    7. Go的map
    Android 中字符串空格占位
    C#知识|上位机UI设计-详情窗体设计思路及流程(实例)
  • 原文地址:https://blog.csdn.net/fm15136/article/details/127085809