配置Linux,安装docker,并运行Java项目

本文写于 2024年7月5日20:28:33

作者@KarrySmile

1. 步骤

整个过程可以分成两步

  1. 部署一台新的虚拟机
    1. 下载安装好 docker
  1. 本地文件打 jar 包上传到服务器
    1. 利用 dockerfile 制作容器,启动容器

2. 部署虚拟机

2.1. 下载镜像

首先 centos7 的用户注意了,Centos7 在 2024 年 6 月 30 号停止了维护,然后腾讯阿里等对应的 yum 源支持也停止了。建议不要选 Centos7 安装。

我在腾讯云服务器上面用的是 OpenCloudOS9,感觉和 Centos 使用体验是很一致的。

下载地址:OpenCloudOS开源操作系统社区官网

我选的是这个版本

2.2. 安装镜像

本节内容修改自笔记《Linux 环境搭建》by 黑马-张虎翼

特别注意:

  • 网络设置部分一定要根据自己的主机来安装,配合之前安装 vm 的经验。
  • 有三个地方是需要自己写的。网关,子网掩码,虚拟机 ip 地址。
  • 比如我这个电脑,vmnet8 的网关地址为 192.168.64.2,子网掩码是 255.255.255.0。我就给它配的 ip 地址是 192.168.64.10

2.2.1. 创建虚拟机

我们在VMware《主页》界面中点击《创建新的虚拟机》按钮:

然后会弹出一个窗口,我们直接点击下一步:

然后页面中选择你准备好的ISO文件,继续点击下一步:

然后填写虚拟机的名称以及虚拟机将来保存的位置:

再次下一步,填写虚拟机磁盘大小。这里建议给大一点,否则将来不够用调整起来麻烦。而且这里设置大小并不是立刻占用这么多,而是设置一个上限:

继续下一步,然后选择虚拟机硬件设置:

在弹出的窗口中设置虚拟机硬件,建议CPU给到4核,内存给到8G:

配置完成后,点击关闭,回到上一页面,继续点击完成:

虚拟机就创建完毕了:

2.2.2. 安装 OpenCloudOS8

接下来,我们启动刚刚创建的虚拟机,开始安装Centos7系统:

启动后需要选择安装菜单,将鼠标移入黑窗口中后,将无法再使用鼠标,需要按上下键选择菜单。选中Install Centos 7 后按下回车:

然后会提示我们按下enter键继续:

过一会儿后,会进入语言选择菜单,这里可以使用鼠标选择。选择中文-简体中文,然后继续:

接下来,会进入安装配置页面:

鼠标向下滚动后,找到系统-安装位置配置,点击:

选择刚刚添加的磁盘,并点击完成:

然后回到配置页面,这次点击《网络和主机名》:

在网络页面做下面的几件事情:

  1. 修改主机名为自己喜欢的主机名,不要出现中文和特殊字符,建议用localhost
  2. 点击应用
  3. 将网络连接打开
  4. 点击配置,设置详细网络信息

最好用一个截图软件,记住上图中的网络详细信息,接下来的配置要参考:

点击配置按钮后,我们需要把网卡地址改为静态IP,这样可以避免每次启动虚拟机IP都变化。所有配置照搬你自己截图的网络信息填写,不要照抄我的:

上图中的四个信息参考之前的以太网(ens33)网卡的截图,不要照搬我的来写。

最后,点击完成按钮:

回到配置界面后,点击开始安装:

接下来需要设置root密码:

填写你要使用的root密码,然后点击完成:

接下来,耐心等待安装即可。

等待安装完成后,点击重启

耐心等待一段时间,不要做任何操作,虚拟机即可启动完毕:

输入用户名root,然后点击回车,会要求你输入密码:

此时你要输入密码,不过需要注意的是密码是隐藏的,输入了也看不见。所以放心输入,完成后回车即可:

只要密码输入正确,就可以正常登录。此时可以用命令测试虚拟机网络是否畅通:

ping baidu.com

如果看到这样的结果代表网络畅通:

默认ping命令会持续执行,按下CTRL + C后命令即可停止。

2.2.3. 设置虚拟机快照

在虚拟机安装完成后,最好立刻设置一个快照,这样一旦将来虚拟机出现问题,可以快速恢复。

我们先停止虚拟机,点击VMware顶部菜单中的暂停下拉选框,选择关闭客户机:

接着,点击VMware菜单中的🔧按钮:

然后在弹出的快照管理窗口中,点击拍摄快照,填写新的快照信息:

快照拍摄完成了!而且我们可以在不同阶段拍摄多个不同快照作为备份,方便后期恢复数据。

假如以后虚拟机文件受损,需要恢复到初识状态的话,可以选中要恢复的快照,点击转到即可:

2.3. 安装 docker

本节内容修改自笔记《安装 docker》by 黑马-张虎翼

2.3.1. 卸载旧版

首先如果系统中已经存在旧的Docker,则先卸载:

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

2.3.2. 配置Docker的yum库

首先要安装一个yum工具

yum install -y yum-utils

安装成功后,执行命令,配置Docker的yum源:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.3.3. 安装Docker

最后,执行命令,安装Docker

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.3.4. 启动和校验

# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps

2.3.5. 配置镜像加速

具体命令如下:

# 创建目录
mkdir -p /etc/docker
# 测试过2024年7月5日还可以用,后面可能源又不行了
# 复制内容
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "https://dockerhub.azk8s.cn",
    "https://registry.cn-hangzhou.aliyunes.com"
  ],
  "max-concurrent-downloads":1
}
EOF
# 重新加载配置
systemctl daemon-reload

# 重启Docker
systemctl restart docker

2.3.6. 命令别名

修改了之后,就可以按 dis 来快速查看已经有的镜像,按 dps 快速查看正在跑的容器

# 修改/root/.bashrc文件
vi /root/.bashrc
# 添加中间那两行,按i进入编辑模式,方向键到指定位置,粘贴,后按ESC,再输入英文状态下的":wq",回车
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
# 激活修改的内容
source /root/.bashrc

3. 用 docker 部署项目

3.1. 上传 jar 包,制作镜像

3.1.1. 打 jar 包

先 clean,后 package

3.1.2. 利用 dockerfile 制作镜像

新建一个 docker 文件夹,新建一个文件 Dockerfile,首字母大写。

FROM anapsix/alpine-java:8_server-jre_unlimited
#语言字符,解决乱码问题
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
#时区及时间,不设置会影响活动的开始结束
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#将springboot的jar包打入镜像
COPY api-0.0.1-SNAPSHOT.jar /opt/ROOT.jar
WORKDIR /opt
#启动命令,注意环境配置 prod
CMD sleep 20;java -Djava.security.egd=file:/dev/./urandom -jar ROOT.jar --spring.profiles.active=prod

把 jar 包拖到 docker 目录下,把整个 docker 文件夹上传到服务器,进入文件夹内,执行命令

docker run -d \
  --name lottery-backend \
  -p 8888:8888 \
  -e TZ=Asia/Shanghai \
  lottery-backend:1.0

执行命令 dis,应该拥有如下的包

3.2. 容器的其他操作指令-误操作就看这里

**列出所有的容器 ID**
docker ps -aq

-a, --all Show all containers (default shows just running)

-q, --quiet Only display numeric IDs
**停止所有的容器**
docker stop $(docker ps -aq)
**删除所有的容器**
docker rm $(docker ps -aq)
**删除所有的镜像**
docker rmi $(docker images -q)

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值