Ubuntu中使用Docker部署SpringBoot+VUE

1、更新系统软件包

        更新 Ubuntu 操作系统上的软件包,可以确保操作系统和软件包都是最新的,从而提高系统的安全性和稳定性。可定期运行这两个命令,以保持系统的最新状态。

# 更新系统软件包列表 和 升级已安装软件
sudo apt update
sudo apt upgrade

# 1.安装docker依赖
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

# 2.添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 3.添加Docker软件源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4.安装docker
apt-get install docker-ce docker-ce-cli containerd.io

出现报错:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package docker-ce is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'docker-ce' has no installation candidate
E: Unable to locate package docker-ce-cli
E: Unable to locate package containerd.io
E: Couldn't find any package by glob 'containerd.io'
E: Couldn't find any package by regex 'containerd.io'

解决方法:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


最后再执行

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 5.可选配置用户组。默认只有root用户和docker组的用户才能运行Docker命令。可以将当前用户添加到docker组,以避免每次都需要使用sudo。
sudo usermod -aG docker $USER     # 需要重启docker

# 6.运行docker (通过apt安装的,docker或许已经自启)
systemctl start docker

# 7.验证docker是否安装成功
docker version

# 查看docker镜像
docker images

# 查看docker容器
docker ps [-a]

# 修改docker镜像源 加速
vim /etc/docker/daemon.json


# 修改为
{
    "registry-mirrors": [
        "https://mirrors.tuna.tsinghua.edu.cn",
        "http://mirrors.sohu.com",
        "https://docker.m.daocloud.io"
    ]
}
 
# 重启docker
systemctl restart docker
# or
service docker restart
 
# 查看是否成功
docker info

Ubuntu常用命令

查看Ubuntu版本:lsb_release -a

每3秒执行一次CPU使用情况:mpstat -P all 3

查看CPU使用情况:top

查看总CPU使用情况:htop

查看内存:free -h

查看cpu:lscpu

查看磁盘空间使用情况:df -h

查看隐藏文件:ll -a 

查看防火墙状态:sudo ufw status

关闭防火墙:sudo ufw disable

开启防火墙:sudo ufw enable

查看开放端口:ss -tuln 或者 sudo netstat -tuln(但是要安装:apt-get install net-tools)

ufw命令教程:在Ubuntu系统下使用ufw开放端口

检查下ufw状态: sudo ufw status

如果返回“inactive”,表示ufw未启用。我们先启用它: sudo ufw enable

然后添加规则开放指定端口,例如开放80端口: sudo ufw allow 80

也可以限定来源IP: sudo ufw allow 80 from 111.11.111.111

开放完成后,再检查状态确认生效: sudo ufw status

需要关闭某个端口,比如不再需要80端口: sudo ufw delete allow 80

Docker常用命令

1、常用命令

进入mysql容器

docker exec -it mysql mysql -uroor -p
Enter password: 密码

mysql>
mysql> use 数据库;
mysql> show tables;
+---------------------+
| Tables_in_name  |
+---------------------+
| tbl_config          |
| tbl_user             |
+---------------------+

进入redis容器服务器:

docker exec -it myredis redis-cli
127.0.0.1:6379> auth 密码
OK
127.0.0.1:6379> get keyname

退出容器:exit

命令说明文档地址

docker pull

拉取镜像

docker pull

docker push

推送镜像到DockerRegistry

docker push

docker images

查看本地镜像

docker images

docker rmi

删除本地镜像

docker rmi

docker run

创建并运行容器(不能重复创建)

docker run

docker stop

停止指定容器

docker stop

docker start

启动指定容器

docker start

docker restart

重新启动容器

docker restart

docker rm

删除指定容器

docs.docker.com

docker ps

查看容器

docker ps

docker logs

查看容器运行日志

docker logs

docker exec

进入容器

docker exec

docker save

保存镜像到本地压缩文件

docker save

docker load

加载本地压缩文件到镜像

docker load

docker inspect

查看容器详细信息

docker inspect

2、数据卷相关命令

数据卷(volume)是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁。

1)命令

命令

说明

docker volume create

创建数据卷

docker volume ls

查看所有数据卷

docker volume rm

删除指定数据卷

docker volume inspect

查看某个数据卷的详情

docker volume prune

清除数据卷

2)实现挂载本地目录或文件
  • 挂载/root/mysql/data到容器内的/var/lib/mysql目录

  • 挂载/root/mysql/init到容器内的/docker-entrypoint-initdb.d目录(初始化的SQL脚本目录,初始化只在第一次有效)

  • 挂载/root/mysql/conf到容器内的/etc/mysql/conf.d目录(这个是MySQL配置文件目录)

创建并运行新mysql容器,挂载本地目录

docker run -d \

        --name mysql \

        -p 3306:3306 \

        -e TZ=Asia/Shanghai \

        -e MYSQL_ROOT_PASSWORD=123 \

        -v /root/mysql/data:/var/lib/mysql \

        -v /root/mysql/conf:/etc/mysql/conf.d \

        -v /root/mysql/init:/docker-entrypoint-initdb.d \

        --network chatzoc \

        mysql:8.0

3、构建自定义镜像Dockerfile

由于制作镜像的过程中,需要逐层处理和打包,比较复杂,所以Docker就提供了自动打包镜像的功能。我们只需要将打包的过程,每一层要做的事情用固定的语法写下来,交给Docker去执行即可。

而这种记录镜像结构的文件就称为Dockerfile,其对应的语法可以参考官方文档:

https://docs.docker.com/engine/reference/builder/

1)常用语法
指令说明

FROM

指定基础镜像

ENV

设置环境变量,可在后面指令使用

COPY

拷贝本地文件到镜像的指定目录

RUN

执行Linux的shell命令,一般是安装过程的命令

EXPOSE

指定容器运行时监听的端口,是给镜像使用者看的

ENTRYPOINT

镜像中应用的启动命令,容器运行时调用

2)编写Dockerfile文件

基于Ubuntu镜像来构建一个Java应用,其Dockerfile内容如下:

# 指定基础镜像
FROM ubuntu:20.04
# 配置环境变量,JDK的安装目录、容器内时区
ENV JAVA_DIR=/usr/local
ENV TZ=Asia/Shanghai
# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 设定时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8
# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 指定项目监听的端口
EXPOSE 8080
# 入口,java项目的启动命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

有人提供了基础的系统加JDK环境,我们在此基础上制作java镜像,就可以省去JDK的配置了:

# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

3)构建镜像

当Dockerfile文件写好以后,就可以利用命令来构建镜像了。

执行命令,构建镜像:

# 进入镜像目录
cd /root/demo
# 开始构建
docker build -t docker-demo:1.0 .

命令说明:

  • docker build : 就是构建一个docker镜像

  • -t docker-demo:1.0-t参数是指定镜像的名称(repositorytag

  • . : 最后的点是指构建时Dockerfile所在路径,由于我们进入了demo目录,所以指定的是 .代表当前目录,也可以直接指定Dockerfile目录:docker build -t docker-demo:1.0 /root/demo

安装vim

1、更新软件包

sudo apt update

2、安装Vim编辑器

sudo apt install vim

3、查看是否安装成功

vim -version

SQL操作

查询数据库
show databases;
创建数据库
create  database  数据库名  【库选项】
查询数据库创建语句
show  create  database  数据库名;
删除数据库
drop database 数据库名;
选择数据库
use 数据库名;

查看数据表
show tables;
查看数据表结构
desc 表名;
查看表的创建语句
show  create table 表名;
删除表
drop table 表名;

增加数据
insert  into  表名(字段列表) values(值列表);
查看数据
select 字段列表 | *  from 表名 【where子句】【group by子句】【having子句】【order by子句】【limit子句】

【where子句】 根据表达进行行上的筛选。即然是表达式就有运算符。

MySQL的运算符:

>、<、>=、<=、<>、!=、=、and、or、not、in、is null(<=>)、like

between m and n 介于m与n之间

字段名  in (值列表)     字段名  not  in (值列表)
更新数据
update user set name='李四', age=18  where id=1;
删除数据
delete from user where id=1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值