当前位置:   article > 正文

Docker实际案例_docker跑一个项目的例子

docker跑一个项目的例子

Docker发布案例

一、最常用使用说明

1. 拉取镜像:

// 方法一:从远程仓库拉取
docker pull 镜像名称:镜像版本
docker pull mysql:8.0.23

// 方法二:镜像linux系统上传后在导入
docker load < 镜像名称
docker load < rabbitmq.tar.gz
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2. 创建运行守护式容器(容器后台自动运行)

docker run -di --name=容器的名称 镜像的名称
  • 1
2.1 安装MySQl数据库

Docker会为每一个容器1创建一个虚拟网卡,然后分配一个Docker的内网IP

问题:A容器部署了MySQl,B容器的Java程序想要访问A容器的MySQl?

  • B容器需要写A容器的内网IP,比较麻烦。

  • A、B容器公用宿主的网卡IP

docker run -it -d --name mysql --net=host \
-m 500m \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/config:/etc/mysql/conf.d  \
-e MYSQL_ROOT_PASSWORD=abc123456 \
-e TZ=Asia/Shanghai mysql:8.0.23 \
--lower_case_table_names=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

说明:

docker run -it -d --name mysql --net=host 			公用宿主IP
-m 500m 											分配500M内存
-v /root/mysql/data:/var/lib/mysql 					映射MySQL数据文件,/var 运行时需要改变的数据文件
-v /root/mysql/config:/etc/mysql/conf.d  			映射MySQl配置文件,/etc 存放系统的配置文件:
-e MYSQL_ROOT_PASSWORD=abc123456 					设置MySQL密码
-e TZ=Asia/Shanghai mysql:8.0.23 					设置时区
--lower_case_table_names=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
2.2 安装MongoDB数据库

下载最新版本的mongoDB数据库

docker pull mongo
  • 1

创建配置文件:/root/mongo/mongod.conf文件

即将配置文件放到数据文件夹下

mkdir -p /root/mongo
vim /root/mongo/mongod.conf
  • 1
  • 2

内容:

net:
   port: 27017
   bindIp: "0.0.0.0"

storage:
   dbPath: "/data/db"
   
security:
   authorization: enabled
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

说明:必须是3个空格

net:
   port: 27017						端口
   bindIp: "0.0.0.0"				允许远程访问

storage:
   dbPath: "/data/db"				数据目录的路径
   
security:
   authorization: enabled			允许通过用户名密码的方式访问
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

创建容器:

docker run -it -d --name mongo --net=host \
-m 500m \
-v /root/mongo:/etc/mongo \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=abc123456 \
-e TZ=Asia/Shanghai \
mongo --config /etc/mongo/mongod.conf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

说明:

docker run -it -d --name mongo --net=host \
-m 500m \
-v /root/mongo:/etc/mongo \						数据文件目录映射到Linux主机上,上方包含配置文件
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=abc123456 \
-e TZ=Asia/Shanghai \
mongo --config /etc/mongo/mongod.conf			指定mongo使用什么样的配置文件,参数写在镜像名字的后面
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
2.3 安装Redis

拉取镜像

docker pull redis:6.0.10
  • 1

创建/root/redis/conf/redis.conf文件

mkdir -p /root/redis/conf/
vim /root/redis/conf/redis.conf
  • 1
  • 2

内容:

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile ""
databases 4
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
requirepass abc123456
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

运行容器

docker run -it -d --name redis -m 300m  --net=host \
-v /root/redis/conf:/usr/local/etc/redis \
-e TZ=Asia/Shanghai \
redis:6.0.10 \
redis-server /usr/local/etc/redis/redis.conf
  • 1
  • 2
  • 3
  • 4
  • 5
2.4 安装RabbitMQ
docker load < rabbitmq.tar.gz
  • 1
docker run -it -d --name mq -m 300m --net=host -e TZ=Asia/Shanghai rabbitmq
  • 1

二、Docker 中部署java项目

1. 运行Java项目

查找软件运行JDK版本的镜像

https://hub.docker.com/_/openjdk?tab=tags
  • 1

打包后台软件

maven按钮 点击闪电图标(表示不执行测试用例) lifecycle package右键(run maven build)

创建目录存放jar文件

  • 在云主机的/root/emos目录中放入emos-wx-api.jar文件
mkdir -p /root/emos
  • 1

拉取JDK镜像

docker pull openjdk:15.0.2-oraclelinux8
#创建新的镜像引用,修改名字,相当于复制一个
docker tag openjdk:15.0.2-oraclelinux8 jdk15
#删除原有镜像引用,删除原有的
docker rmi openjdk:15.0.2-oraclelinux8
  • 1
  • 2
  • 3
  • 4
  • 5

创建容器

docker run -it -d --name=emos-wx-api --net=host -m 500m \
-v /root/emos:/root/emos \
-e TZ=Asia/Shanghai jdk15
  • 1
  • 2
  • 3

运行后端程序

#进入Java容器
docker exec -it emos-wx-api bash
cd /root/emos
#运行工作流项目
nohup  java -jar emos-wx-api.jar  >> out.log 2>&1 &

# 退出JDK容器
exit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

查看out.log日志,看程序是否正常启动。

2. Nginx安装

  • 域名只能绑定到云主机的80端口,所以我们要安装Nginx程序,开启80端口
  • Nginx程序,我们还可以为云主机设置SSL,开通HTTPS访问。
  • 为yum扩展额外的安装源,这样才能用yum命令安装Nginx
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

#执行安装
yum install nginx -y
#启动Nginx
service nginx start

# 通过linux IP就可以看到Nginx的登陆界面
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

怎样查看nginx的运行

3. 绑定域名,开通https服务

3.1 将两个文件,都需要上传到云主机的/etc/nginx/目录
3.2 编辑/etc/nginx/nginx.conf文件,添加SSL设置
http {
    ……

    server {
        #SSL 访问端口号为 443
        listen 443 ssl;
        #填写绑定证书的域名
        server_name zkallen.club;
        #证书文件名称
        ssl_certificate zkallen.club_bundle.crt;
        #私钥文件名称
        ssl_certificate_key zkallen.club.key;
        ssl_session_timeout 5m;
        #请按照以下协议配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
            root   html;
            index  index.html index.htm;
        }
        location /emos-wx-api {
            proxy_pass http://localhost:8080/emos-wx-api;
        }
        location /emos-workflow {
            proxy_pass http://localhost:9090/emos-workflow;
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
service nginx restart
  • 1
101.43.84.151
http://101.43.84.151:8080/emos-wx-api/swagger-ui.html
https://www.zkallen.club
  • 1
  • 2
  • 3

三、Docker中部署微信小程序

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/537920
推荐阅读
相关标签
  

闽ICP备14008679号