docker部署nginx,部署Jar包,干就完了~

一、先部署springboot项目

1、安装docker:

 yum install docker -y

2、启动docker:

service docker start

重启:

service docker restart

3、设置镜像源

问题
很多人说通过dig @114.114.114.114 registry-1.docker.io获取到可用的域名解析地址,然后将地址添加到/etc/hosts中,如下:

34.205.13.154 registry-1.docker.io

说保存之后重试几次就行,但我试了几次,dig出来的结果都在变化,重新docker pull 之后仍然提示超时。

解决方法

通过阿里云的镜像加速器。阿里云的容器镜像服务地址为:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

没有账号的可以免费注册一个。然后找到容器镜像服务,就是下面的地址。查看自己的镜像加速器地址并复制。

然后进入目录:cd /etc/docker  -->daemon.json。没有就自行新建。

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://XXXXXXX.mirror.aliyuncs.com"]
}

修改好之后,保存,重启加速器,重启docker。

systemctl daemon-reload

systemctl restart docker

然后再次下载,可看到镜像还是不行。。。

问题:配置了阿里镜像源,使用docker拉取镜像还是失败

通过 docker info 查看是否配置成功

发现已经设置成功了,但此时我们还是下载失败。

解决方案

配置服务器dns解析

vim /etc/resolv.conf

加上以下内容 

# 谷歌的dns域名解析地址
nameserver 8.8.4.4
nameserver localdomain

 # 重启docker

systemctl restart docker 

再次运行,成功!!! 

设置镜像源、dns解析前:

设置镜像源、dns解析后:

6、查看版本:

docker -v

7、使设置docker.service生效(路径:/usr/lib/systemd/system/docker.servic):

sudo systemctl enable docker

8、查看docker状态:

systemctl status docker

编写Dockerfile

FROM java:8
VOLUME /tmp
ADD CmdbAddBackend.jar CmdbAddBackend.jar
RUN echo "Asia/Shanghai" > /etc/timezone
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/CmdbAddBackend.jar"]

9、Dockerfile文件要与jar包文件在同一文件夹下

10、构建镜像(点不要忘记):

 docker build -t cmdbdocker .

11、要启动cmdbdocker

大写-P表示随机分配端口  docker run -d -P cmdbdocker

小写-p 表示指定端口,主机端口:docker容器端口  docker run -d -p 8086:8080 cmdbdocker

查看正在运行的容器         docker ps
停止正在运行的容器        docker stop 容器id
启动容器        docker start 容器id
启动多个容器:docker start container1 container2 container3

12、查看镜像

docker images

13、删除镜像

# 根据id删除单个镜像

docker rmi -f 镜像id

# 根据条件删除所有none的镜像

docker rmi -f $(docker images -f "dangling=true" -q)

14、linux查看jdk安装路径:

which java

二、部署nginx服务

1、安装的命令

sudo docker search nginx
docker pull nginx

2、查看是否安装

docker images

 3、创建nginx日志、页面文件夹,nginx.conf文件

mkdir -vp /home/nginx/{dist,logs}

vim nginx.conf

4、修改 nginx.conf内容

#user  nobody;
worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
  
     upstream server1{
         server 192.**.55:8080;
         server 192.**.56:8080;
         server 192.**.57:8080;
    }
    
    upstream server2{
         server 192.**.55:9090;
         server 192.**.56:9090;
         server 192.**.57:9090;
    }
 
    server {
         listen 8000;
         server_name 192.**.55;
         ignore_invalid_headers off;
         client_max_body_size 0;
         proxy_buffering off;
        location / {
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header X-NginX-Proxy true;
                proxy_set_header Connection "upgrade";
                proxy_connect_timeout 300;
                proxy_http_version 1.1;
                chunked_transfer_encoding off;
                proxy_ignore_client_abort on;
                proxy_pass http://server1;
        }
    }
 
    server {
         listen 9000;
         server_name 192.**.55;
         ignore_invalid_headers off;
         client_max_body_size 0;
         proxy_buffering off;
        location / {
             proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header X-NginX-Proxy true;
                proxy_set_header Connection "upgrade";
                proxy_connect_timeout 300;
                proxy_http_version 1.1;
                chunked_transfer_encoding off;
                proxy_ignore_client_abort on;
             proxy_pass http://server2;
        }
    }
}

 nginx配置解释参考如下:

5、创建docker启动脚本start.sh

#!/bin/bash docker run -d --name nginx -p 9091:8000 -p 9092:9000 --name nginx -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/dist:/usr/share/nginx/html  -v /home/nginx/logs:/var/log/nginx nginx

参数说明:

启动容器:docker run --name 容器别名 -p 9091:8000 -d nginx

        参数说明:

--name nginx-test:容器名称。
-p 9091:8000: 端口进行映射,将本地 9091端口映射到容器内部的 8000 端口。
-d nginx: 设置容器在在后台一直运行。

 6、运行start.sh

7、访问项目 

 浏览器通过ip端口访问 ,可以正常访问:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值