-
1、CentOS、Red Hat环境Docker安装
(1)删除旧版本:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest
docker-latest-logrotate docker-logrotate docker-engine
(2)安装依赖包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)添加docker官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(4)启动docker服务 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
(5)验证docker是否安装成功
docker --version
-
2、安装redis
(1)拉取redis官方镜像
docker pull redis
(2)运行Redis容器 并挂载 宿主机 /usr/local/redis/ *** 换成redis密码
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /usr/local/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass ***
(3)redis.conf配置内容
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
# bind 127.0.0.1
protected-mode no
port 6379
tcp-backlog 511
requirepass huayin2014
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
-
3、安装mysql5
(1)搜索mysql镜像
docker search mysql
(2)下载镜像
docker pull mysql:5.7
(3)运行容器 数据挂载 *** 为密码 注:密码为纯数字时,在springboot项目配置里要用引号引起来
docker run -d -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=*** --name mysql01 mysql:5.7
(4)登入数据库
docker exec -it 容器id /bin/bash
mysql -uroot -p***
-
4、部署springboot项目
(1)将生成的jar文件放在一个单独的目录中,例如/usr/local/myapp/
(2)新建Dockerfile文件
touch Dockerfile
(3)编辑Dockerfile文件
vmi Dockerfile
文件写入:
# Docker image for springboot file run
# VERSION 0.0.1
# Author:
# 基础镜像使用java
FROM openjdk:8
# 作者
MAINTAINER shallwe
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
#VOLUME /tmp
# 将当前目录下的jar包添加到容器根目录中并更名为app.jar
ADD ./demo.jar /app.jar
# 运行jar包
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
#相当于执行 java -jar /app.jar,
#-Djava.security.egd=file:/dev/./urandom 是一种安全保障,可以不用。
#使用prod配置文件 ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod","-c"]
(4)进入文件所在目录,生成镜像 别忘了末尾有个 .
docker build -t java-app:v1.0.0 .
(5)运行镜像
docker run -p 8088:8088 -d --name mylisten --restart always java-app:v1.0.0
(6)查看日志
docker logs -f -t --tail 100 [容器id]
参考文献:
Linux 环境Docker安装-腾讯云开发者社区-腾讯云
Docker部署Springboot项目_docker部署spring boot项目-CSDN博客
https://juejin.cn/post/6990181167777464357