美文网首页Docker微服务Docker
docker nginx redis springboot

docker nginx redis springboot

作者: 全栈无用 | 来源:发表于2021-04-22 16:18 被阅读0次

系统配置

linux centos 7 64位
jdk 1.8
maven 3.5.4
spring boot 2.2.2.RELEASE

步骤

  • yum 安装docker
  • yum 安装 jdk
  • 部署 docker
  • 安装 nginx
  • 安装部署 redis
  • wget 下载并安装maven
  • docker 发布springboot

Docker - - -START- - -

安装docker

1、检查内核版本,必须是3.10及以上
uname -r

2、安装docker
yum install docker

3、输入y确认安装
4、启动docker
[root@localhost ~]# systemctl  start docker.service
[root@localhost ~]# systemctl  enable docker.service
[root@localhost ~]# docker -v

5、使用docker中国加速器
[root@localhost ~]# vi  /etc/docker/daemon.json
#打开文件后添加:
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true
}
#重启docker
systemctl restart docker
#查看版本 
docker version

### docker 基本命令

#@@ 镜像控制
#搜索镜像:docker  search  [OPTIONS]  TERM
#上传镜像:docker  push  [OPTIONS]  NAME[:TAG]
#下载镜像:docker  pull  [OPTIONS]  NAME[:TAG]
#提交镜像:docker  commit [OPTIONS]  CONTAINER  NAME[:TAG]
#构建镜像:docker  build  [OPTIONS]  PATH
#删除镜像:docker  rmi [OPTIONS]  IMAGE  [IMAGE...]
#增加镜像标签:docker  tag  SOURCE_IMAGE[:TAG]  TARGET_IMAGE[:TAG]
#查看所有镜像:docker  images  [OPTIONS]  [REPOSITORY[:TAG]]

#@@ 容器控制
#启动/重启容器:docker start/restart CONTAINER
#停止/强停容器:docker stop/ kill CONTAINER
#删除容器:docker rm [OPTIONS] CONTAINER [CONTAINER...]
#重命名容器:docker rename CONTAINER CONTAINER_NEW
#进入容器:docker attach CONTAINER
#执行容器命令:docker exec CONTAINER COMMAND
#查看容器日志:docker logs [OPTIONS] CONTAINER
#查看容器列表:docker ps [OPTIONS]

# run                                     >创建容器实例
# --name                               >容器命名
# -v                                       >映射目录(/x/y/z.conf : /a/b/c.conf
# -d                                       >设置容器后台运行
# -i                                        >以交互模式运行容器,通常与 -t 同时使用
#-t                                         >为容器重新分配一个伪输入终端,通常与 -i 同时使用
# -p                                       >本机端口映射 将容器的80端口映射到本机的80端口( 80:80 )
# --restart=always                >是否自动启动(重启)
# --privileged                        >容器将拥有访问主机所有设备的权限
#语句最后追加所引用的镜像名称

#Dockerfile  ( 创建一个自定义的image )

(1) FROM: 制作image时依据的基本image
(2) RUN:制作image时执行的命令,一般在Dockerfile中多次出现
(3) CMD:启动docker时执行的命令,在Dockerfile中只出现一次
(4) ENV:设置环境变量
(5) COPY:制作image时,将文件系统中的文件复制到Docker镜像中
(6) WORKDIR:设置工作目录
(7) EXPOSE:设置向外暴露的端口
(8) VOLUME:设置容器与外界映射的目录

Jdk - - -START- - -

安装jdk

yum -y install java-1.8.0-openjdk*
#配置环境变量
vim /etc/profile 
#最后一行
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
export PATH=$PATH:$JAVA_HOME/bin
#重启配置
source /etc/profile
#查看安装情况
java -version

Nginx - - -START- - -

安装nginx与映射

docker pull nginx
docker images

将nginx容器内部配置文件挂载到主机

创建项目、日志、配置文件夹

cd /
mkdir -p docker/nginx
cd /docker/nginx
docker run -p80:80 --name nginx -d docker.io/nginx

# 复制 nginx 配置文件:
docker container cp nginx:/etc/nginx .
docker cp -a nginx:/usr/share/nginx/html /docker/nginx
docker cp -a nginx:/var/run/nginx.pid /docker/nginx

# 将 nginx 文件夹改名为 conf :
mv nginx conf

# 删除之前的nginx , 之前仅用来复制
docker stop nginx
# 移除之前运行的容器实例
docker rm nginx 

创建新nginx容器nginx,并将html,logs,conf目录映射到本地

 docker run --name nginx  \
-d \
-p 80:80 \
--restart=always \
--privileged=true \
-v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /docker/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /docker/nginx/html:/usr/share/nginx/html \
-v /docker/nginx/logs:/var/log/nginx \
docker.io/nginx

如需重启nginx

docker restart nginx     

访问nginx

http://192.168.5.128/

Redis- - -START- - -

安装redis与映射

docker search  redis
#安装指定版本,这里使用最新版
docker pull redis:latest

#准备redis的配置文件,用来映射
mkdir /docker/redis/conf
wget https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf -O conf/redis.conf
vi /docker/redis/conf/redis.conf

#主要配置的如下:
 bind 127.0.0.1 #注释掉这部分,使redis可以外部访问
 daemonize no#用守护线程的方式启动
 requirepass 你的密码#给redis设置密码
 appendonly yes#redis持久化  默认是no
 tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300

# 修改完后,复制一份添加后缀.bak,两个文件共同上传到linux目录 : /docker/redis

#生成容器实例,指定映射配置文件(redis.conf),指定数据存放磁盘(data)

docker run --name redis \
-p 6379:6379 \
--restart=always \
-v /docker/redis/data:/data \
-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf  \
--privileged=true \
-d redis redis-server /etc/redis/redis.conf

# 查看活跃的容器
docker ps
# 如果没有 myredis 说明启动失败 查看错误日志
docker logs redis
# 查看 redis的 ip 挂载 端口映射等信息
docker inspect redis
# 查看 redis的端口映射
docker port redis
#查看 redis master 的内部 ip
docker inspect redis #Networks
#重启redis
docker restart redis

Maven - - -START- - -

安装 maven

 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar vxf apache-maven-3.5.4-bin.tar.gz
mv apache-maven-3.5.4 /usr/local/maven3
#配置环境变量
vi /etc/profile

MAVEN_HOME=/usr/local/maven3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

#执行命令,使配置生效
source /etc/profile

##查看安装情况及版本号
mvn -version

Springboot - - -START- - -

打包springboot并配置dockerfile(执行生成镜像文件)

#复制springboot.jar 到 linux,并粘贴dockerfile在文件夹下
#dockerfile内容如下

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER eangulee <gsw@email.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD docker-1.0-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
#ENTRYPOINT exec java -jar app.jar

创建 springboot 项目 docker镜像

sudo docker build -t docker.demo .
#查看已创建镜像
docker images 

[root@localhost app]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
docker.demo                       latest              07a00b7f9943        5 minutes ago       678 MB
docker.io/adoptopenjdk/openjdk8   latest              6fd559d4f411        2 weeks ago         320 MB
docker.io/hello-world             latest              d1165f221234        6 weeks ago         13.3 kB
docker.io/centos                  latest              300e315adb2f        4 months ago        209 MB
docker.io/java                    8                   d23bdf5b1b1b        4 years ago         643 MB

#生成容器
docker run -it --restart=always -d -p 8080:9100 docker.demo 

#访问
http://xxx.x.x.x:8080/test/print/ 

相关文章

网友评论

    本文标题:docker nginx redis springboot

    本文链接:https://www.haomeiwen.com/subject/vqhfrltx.html