前端部署-docker

linux 基本命令

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


一、文件与目录管理

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

二、文件内容查看与编辑

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

三、系统信息与进程管理

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

四、用户与权限管理

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

五、网络管理

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

六、压缩与归档

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

七、系统服务管理

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

八、其他实用命令

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

Mac 连接远程服务器

juejin.cn/post/719964...

www.terminal.icu/

安装 docker

juejin.cn/post/713167...

安装Docker Compose

1、下载Docker Compose二进制文件

bash 复制代码
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文件赋予可执行权限:
bash 复制代码
sudo chmod +x /usr/local/bin/docker-compose

3、创建符号链接

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

4、验证安装

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

docker设置阿里云镜像

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

重启服务器: systemctl restart docker

docker 基础

一、基本概念和组成

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

1、镜像(image)

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

镜像信息:

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

2、容器(container)

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

容器信息:

列名 含义 示例值
CONTAINER ID 容器的唯一标识符(缩写,完整 ID 可通过 docker ps --no-trunc 查看)。 a1b2c3d4e5f6
IMAGE 容器基于的镜像名称(与 docker images 中的 REPOSITORY 列一致)。 nginx:latest
COMMAND 容器启动时执行的命令(默认是镜像的 ENTRYPOINTCMD)。 "/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 运行

功能 命令
启动docker systemctl start docker
停止docker systemctl stop docker
重启docker systemctl 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 .

简单示例

文件目录

nginx.conf

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

dockerFile 配置

js 复制代码
# 使用官方的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 .

相关推荐
中微子12 分钟前
🔥 React Context 面试必考!从源码到实战的完整攻略 | 99%的人都不知道的性能陷阱
前端·react.js
中微子1 小时前
React 状态管理 源码深度解析
前端·react.js
加减法原则2 小时前
Vue3 组合式函数:让你的代码复用如丝般顺滑
前端·vue.js
yanlele3 小时前
我用爬虫抓取了 25 年 6 月掘金热门面试文章
前端·javascript·面试
lichenyang4533 小时前
React移动端开发项目优化
前端·react.js·前端框架
你的人类朋友3 小时前
🍃Kubernetes(k8s)核心概念一览
前端·后端·自动化运维
web_Hsir3 小时前
vue3.2 前端动态分页算法
前端·算法
烛阴4 小时前
WebSocket实时通信入门到实践
前端·javascript
草巾冒小子4 小时前
vue3实战:.ts文件中的interface定义与抛出、其他文件的调用方式
前端·javascript·vue.js
DoraBigHead4 小时前
你写前端按钮,他们扛服务器压力:搞懂后端那些“黑话”!
前端·javascript·架构