系统配置
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/











网友评论