前端部署-docker

326 阅读6分钟

linux 基本命令

在 Linux 系统中,掌握基本命令是高效操作和管理的关键。以下是常用的 Linux 基本命令分类及说明,涵盖文件管理、系统信息、权限控制、网络操作等核心场景:


一、文件与目录管理

命令示例说明
lsls -l /home列出目录内容,-l 显示详细信息(权限、所有者等)
cdcd /var/log切换目录,cd ~ 返回用户主目录
pwdpwd显示当前工作目录的绝对路径
mkdirmkdir new_folder创建新目录
rmrm file.txt删除文件,-r 递归删除目录(如 rm -r dir/
cpcp file.txt /backup/复制文件或目录(加 -r 复制目录)
mvmv old.txt new.txt重命名或移动文件/目录
touchtouch newfile.txt创建空文件或更新文件时间戳
findfind /home -name "*.log"按名称搜索文件
grepgrep "error" log.txt在文件中搜索文本内容

二、文件内容查看与编辑

命令示例说明
catcat file.txt查看整个文件内容
less/moreless largefile.log分页查看文件(支持上下滚动)
head/tailtail -f /var/log/syslog查看文件开头/末尾内容(-f 实时跟踪日志)
vim/nanovim config.conf文本编辑器(nano 更简单,适合新手)

三、系统信息与进程管理

命令示例说明
dfdf -h查看磁盘空间使用情况(-h 人性化显示)
dudu -sh /home查看目录占用空间(-s 汇总,-h 人性化)
top/htophtop动态查看进程和资源占用(htop 更直观)
psps aux显示当前进程状态
killkill -9 1234终止进程(-9 强制终止)
freefree -m查看内存使用情况(-m 以 MB 为单位)
unameuname -a显示系统信息(内核版本、主机名等)

四、用户与权限管理

命令示例说明
sudosudo apt update以超级用户权限执行命令
susu - username切换用户(- 加载目标用户环境)
chmodchmod 755 script.sh修改文件权限(755 表示所有者可读写执行,其他用户可读执行)
chownchown user:group file.txt修改文件所有者或组
passwdpasswd修改当前用户密码

五、网络管理

命令示例说明
ifconfig/ipip a查看网络接口信息(ifconfig 已逐渐被 ip 替代)
pingping google.com测试网络连通性
netstat/ssss -tulnp查看端口监听状态(ss 更高效)
curl/wgetcurl -I https://example.com下载文件或测试 HTTP 请求
sshssh user@192.168.1.100远程登录服务器

六、压缩与归档

命令示例说明
tartar -czvf archive.tar.gz dir/压缩目录为 .tar.gz 文件(-c 创建,-z gzip 压缩,-v 显示过程,-f 指定文件名)
unzipunzip file.zip解压 ZIP 文件

七、系统服务管理

命令示例说明
systemctlsystemctl start nginx启动服务(适用于 Systemd 系统,如 Ubuntu 16.04+/CentOS 7+)
serviceservice nginx restart旧版系统(如 Ubuntu 14.04)的服务管理命令
journalctljournalctl -u nginx查看服务日志(Systemd 系统)

八、其他实用命令

命令示例说明
crontabcrontab -e编辑定时任务(如每天备份数据库)
aliasalias ll='ls -l'创建命令别名(临时生效,写入 ~/.bashrc 可永久生效)
historyhistory查看命令历史记录
exportexport PATH=$PATH:/new/path设置环境变量

Mac 连接远程服务器

juejin.cn/post/719964…

www.terminal.icu/

安装 docker

juejin.cn/post/713167…

安装Docker Compose

1、下载Docker Compose二进制文件

DOCKER_COMPOSE_VERSION=v2.27.1
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、赋予可执行权限

  • 下载完成后,为Docker Compose文件赋予可执行权限:
sudo chmod +x /usr/local/bin/docker-compose

3、创建符号链接

  • docker-compose命令链接到/usr/bin目录,以便全局访问:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4、验证安装

  • 运行以下命令查看Docker Compose版本信息:
docker-compose --version
  • 如果安装成功,将显示Docker Compose的版本号。

docker设置阿里云镜像

image.png

image.png

运行命令:mkdir -p /etc/docker

重启服务器: systemctl restart docker

docker 基础

一、基本概念和组成

将代码环境统一绑定,实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

1、镜像(image)

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。相当于js中的一个基础的工具类,可以创建出多个容器提供使用。

镜像信息:

image.png

列名含义示例值
REPOSITORY镜像所属的仓库名称(标识镜像来源)。ubuntunginxmy-app
TAG镜像的标签(版本号),默认为 latest20.04latestv1.0
IMAGE ID镜像的唯一标识符(前12位哈希值,完整 ID 可通过 docker inspect 查看)。a1b2c3d4e5f6
CREATED镜像的创建时间(相对于当前时间的时长或具体日期)。2 weeks ago2024-01-01
SIZE镜像的大小(压缩后的存储占用空间)。72.9MB142MB

2、容器(container)

Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

容器信息:

image.png

列名含义示例值
CONTAINER ID容器的唯一标识符(缩写,完整 ID 可通过 docker ps --no-trunc 查看)。a1b2c3d4e5f6
IMAGE容器基于的镜像名称(与 docker images 中的 REPOSITORY 列一致)。nginx:latest
COMMAND容器启动时执行的命令(默认是镜像的 ENTRYPOINT 或 CMD)。"/docker-entrypoint.…"
CREATED容器创建后的运行时间(格式为 时长 或 YYYY-MM-DD HH:MM:SS)。2 minutes ago
STATUS容器的当前状态(如运行中、暂停、退出等)。Up 2 minutes
PORTS容器暴露的端口映射(格式为 主机端口:容器端口 或 容器端口)。0.0.0.0:8080->80/tcp
NAMES容器的随机名称(可通过 --name 参数自定义)。hopeful_swanson

3、仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。类似于GitHub的一个公有或私有的仓库。用户可根据需求获取不同的镜像使用。

二、docker 命令

1、docker 运行

功能命令
启动dockersystemctl start docker
停止dockersystemctl stop docker
重启dockersystemctl restart docker
查看docker状态systemctl status docker
设置docker开机启动systemctl enable docker
查看docker概要信息docker info
查看docker总体帮助文档docker --help

2、docker 镜像

功能命令
查看本地主机上的镜像docker images
搜索远端镜像仓库镜像docker search 镜像名字
获取镜像到本地docker pull 镜像名字[:TAG]
获取最新镜像到本地docker pull 镜像名字:latest
删除单个镜像docker rmi -f 镜像ID
删除多个镜像docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部镜像docker rmi -f $(docker images -qa)
删除所有的虚悬镜像docker image prune

3、docker 容器

功能命令举例
启动容器docker run 镜像名[:TAG]docker run nginx:latest
启动并设置镜像名称docker run --name 自定义名称 镜像名[:TAG]docker run --name test_niginx nginx:latest
启动并后台运行docker run -d 镜像名[:TAG]docker run -d nginx
启动并设置映射端口docker run -p 对外端口:镜像暴露端口 镜像名[:TAG]docker run -p 8888:80 nginx
复合命令docker run --name test_nginx -d -p 8888:80 nginx
查看全部的容器dock ps
停止容器docker stop [CONTAINER ID/IMAGE/NAMES]

4、docker 交互式容器【可编辑文件】

例如:docker run -it centos /bin/bash

参数说明:

-i: 交互式操作。

-t: 终端。

centos : centos 镜像。

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

退出容器操作:

两种退出方式

exit

run进去容器,exit退出,容器停止

ctrl+p+q

run进去容器,ctrl+p+q退出,容器不停止

三、dockerFile

是什么?

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

为什么?

由于dockerHub中的镜像为通用的镜像,大多数都不满足我们项目的docker镜像的要求。那么就需要自定义项目docker镜像,从而实现项目不同系统环境的部署运行。

怎么做?

    1. 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
    1. 指令按照从上到下,顺序执行
    1. #表示注释
    1. 每条指令都会创建一个新的镜像层并对镜像进行提交

DockerFile常用保留字指令

参考tomcat8的dockerfile入门

github.com/docker-libr…

指令用途关键注意事项
FROM指定基础镜像必须为第一条指令
LABEL添加元数据替代废弃的 MAINTAINER
ENV/ARG设置环境变量/构建参数ARG 仅构建阶段有效
WORKDIR设置工作目录推荐绝对路径
COPY/ADD复制文件到镜像优先用 COPY(除非需解压或下载)
RUN执行构建命令合并命令减少层数
EXPOSE声明容器端口需配合 docker run -p 使用
CMD默认启动命令可被 docker run 覆盖
ENTRYPOINT固定启动命令与 CMD 配合传递参数
HEALTHCHECK容器健康检查定义服务可用性检查
多阶段 FROM优化镜像体积分离构建和运行环境

镜像制作

docker build [选项] -t <镜像名称>:<标签> <构建上下文路径>

docker build -t my-nginx:latest .

简单示例

文件目录

image.png

nginx.conf

server {
    listen 80;
    server_name localhost;
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
}

dockerFile 配置

# 使用官方的nginx镜像作为父镜像
FROM nginx:alpine
 
# 删除默认的nginx网站配置文件
RUN rm /etc/nginx/conf.d/default.conf
 
# 复制构建后的前端文件到nginx的html目录
COPY ./dist /usr/share/nginx/html
 
# 复制nginx配置文件到容器中
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
 
# 暴露80端口
EXPOSE 80
 
# 启动nginx服务
CMD ["nginx", "-g", "daemon off;"]

制作镜像

docker build -t fe-dev:latest .

image.png

image.png