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 sourceE: 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 push
推送镜像到DockerRegistry
docker images
查看本地镜像
docker rmi
删除本地镜像
docker run
创建并运行容器(不能重复创建)
docker stop
停止指定容器
docker start
启动指定容器
docker restart
重新启动容器
docker rm
删除指定容器
docker ps
查看容器
docker logs
查看容器运行日志
docker exec
进入容器
docker save
保存镜像到本地压缩文件
docker load
加载本地压缩文件到镜像
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
参数是指定镜像的名称(repository
和tag
) -
.
: 最后的点是指构建时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;