docker安装,打包,运行,推送

docker环境搭建

# 没有yum-config-manager命令的话
# yum -y install yum-utils

# 添加docker镜像地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装docker-ce , docker-cli  (指定版本docker-ce-20.10.8 docker-ce-cli-20.10.8 containerd.io)
sudo yum -y install docker-ce docker-ce-cli containerd.io   

# 启动docker
systemctl start docker

# 设置开机自启
systemctl enable docker

# 配置docker加速  (https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)自行设置自己的
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://ub3d38gx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

# 测试检测docker版本
[root@zhaoxingyu code]# docker -v
Docker version 20.10.8, build 3967b7d

设置拉取镜像

# 拉取最新版redis
docker pull redis 

# 设置文件挂载目录的配置文件
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
# 设置数据redis数据持久化(开启AOF模式)
echo "appendonly yes"  >> /mydata/redis/conf/redis.conf

# 设置redis认证密码(不设置也行)
echo "requirepass zhao123456"  >> /mydata/redis/conf/redis.conf

# 启动redis (并设置redis.conf)
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
--restart=always \
-d redis redis-server /etc/redis/redis.conf

编写代码

创建普通spring boot项目 引入 web 和 redis 依赖

编写controller

在这里插入图片描述

配置文件修改

server.port=6500
# redis 密码
spring.redis.password=zhao123456 
# redis地址
spring.redis.host=101.132.248.90

启动项目测试index接口没有问题

在这里插入图片描述

打包构建启动

编写简单Dockerfile

FROM openjdk:8u302-jdk-slim # 设置在容器中的其他引用

LABEL maintainer=zhaoxingyu

COPY target/*.jar /app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

使用mvn package打包工具

在这里插入图片描述

target文件夹和Docker文件拷贝到服务器中
在这里插入图片描述
在当前目录执行

# 构建Dockerfile文件
docker build -t java-demo:1.0 .

# 如果Dockerfile文件不在这个目录或者不是叫Dockerfile 可以通过-f /mydata/code/Dockerfile 指定位置

等待构建完成

[root@zhaoxingyu code]# docker build -t java-demo:1.0 .
Sending build context to Docker daemon  27.29MB
Step 1/4 : FROM openjdk:8u302-jdk-slim
8u302-jdk-slim: Pulling from library/openjdk
bd897bb914af: Pull complete 
0cc7fec72146: Pull complete 
4bdb783f109f: Pull complete 
4cee21827af0: Pull complete 
Digest: sha256:a954575c94c08ce01f273f1c69f93d1f213fce46381d8eba05f062db478bdbcd
Status: Downloaded newer image for openjdk:8u302-jdk-slim
 ---> 99b31c7569d0
Step 2/4 : LABEL maintainer=zhaoxingyu
 ---> Running in ed198fde1700
Removing intermediate container ed198fde1700
 ---> 36b967d986e0
Step 3/4 : COPY target/*.jar /app.jar
 ---> b9510edd5cfd
Step 4/4 : ENTRYPOINT ["java","-jar","/app.jar"]
 ---> Running in 3d4b50258779
Removing intermediate container 3d4b50258779
 ---> 3d2793ed75e4
Successfully built 3d2793ed75e4
Successfully tagged java-demo:1.0

启动镜像测试

docker run -d -p 6500:6500 java-demo:1.0

如果是云服务器设置安全组 暴露6500端口 (这里暴露的是6000-7000之间的端口,因为还要暴露redis端口)

在这里插入图片描述

推送到docker hub

  1. 注册dockerhub

  2. 创建dockerhub的仓库
    在这里插入图片描述

  3. 服务器登录dockerhub

    # 登录输入用户名密码
    docker login
    
    # (退出:docker logout)
    
  4. 设置本地镜像标签

    docker tag java-demo:1.0  zhaoxingyudocker/java-demo:1.0
    

    在这里插入图片描述

  5. 推送镜像

    docker push zhaoxingyudocker/java-demo:1.0
    
  6. 等待推送完成

    [root@zhaoxingyu code]# docker push zhaoxingyudocker/java-demo:1.0
    The push refers to repository [docker.io/zhaoxingyudocker/java-demo]
    b21b45a4739d: Pushed 
    3b147e0af2a7: Mounted from library/openjdk 
    86b49f790727: Mounted from library/openjdk 
    f7e816b93eb6: Mounted from library/openjdk 
    a548c9107c3a: Mounted from library/openjdk 
    1.0: digest: sha256:e067d07df0f6da693df9702970ea4c69ec5f27f8af3a3517ce3b3e0a136ff729 size: 1372
    
  7. 推送完成

    在这里插入图片描述

  8. 搜索自己的镜像

    [root@zhaoxingyu code]# docker search zhaoxingyudocker
    NAME                                DESCRIPTION   STARS     OFFICIAL   AUTOMATED
    zhaoxingyudocker/java-demo          这里是描述哦        0
    

其他人拉取运行

# 拉取
docker pull zhaoxingyudocker/java-demo:1.0

# 运行
docker run -d -p 6500:6500 java-demo:1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明明吃了饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值