Linux 常用命令(Docker / Git )

本手册用于记录比常用命令更深入的内容,包括:

  • Docker 深度使用(镜像、容器、网络、存储、Dockerfile、Compose)
  • Git 高级命令(rebase、stash、submodule)

目录


Docker

一、Docker 基础常用命令

1. 查看运行与全部容器

docker ps          # 查看正在运行的容器
docker ps -a       # 查看所有容器(包含已停止)

2. 查看镜像

docker images

3. 拉取镜像

docker pull nginx:latest

4. 运行容器

常用参数:

  • -d:后台运行
  • -p:端口映射(宿主:容器)
  • --name:容器名称

示例:

docker run -d -p 8080:80 --name web nginx

5. 进入容器

docker exec -it web bash

6. 启停容器

docker stop web
docker start web
docker restart web

7. 查看容器日志

docker logs -f web

8. 删除容器与镜像

docker rm web
docker rmi nginx:latest

9. docker-compose 基本使用

docker-compose up -d
docker-compose down

二、Docker 深度使用

1. Dockerfile 基础语法

FROM nginx:latest
COPY ./html /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

关键指令:

  • FROM:基础镜像
  • COPY:复制文件
  • RUN:执行命令
  • EXPOSE:声明端口
  • CMD:容器启动时执行命令

2. 构建镜像

docker build -t my-nginx .

3. Docker 网络

查看网络:

docker network ls

创建自定义网络:

docker network create mynet

容器加入网络:

docker run -d --network=mynet --name web nginx

4. Docker 数据卷(Volumn)

创建数据卷:

docker volume create mydata

挂载到容器:

docker run -d -v mydata:/var/lib/mysql mysql

5. docker-compose 深度模板

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    volumes:
      - dbdata:/var/lib/mysql
volumes:
  dbdata:

Git 命令

一、Git 基础命令

1. 配置用户

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

2. 初始化与克隆

git init
git clone https://github.com/user/repo.git

3. 常用基本操作

git add .
git commit -m "message"
git status
git log --oneline --graph

4. 分支管理

git branch
git branch dev
git switch dev

5. 合并

git merge dev

6. 远程仓库

git remote add origin https://github.com/user/repo.git
git push -u origin main
git pull origin main

二、Git 高级命令

1. Git rebase(变基)

将分支整理成更干净的提交历史:

git switch dev
git rebase main

交互式 rebase:

git rebase -i HEAD~5

常用于:

  • 合并多个 commit
  • 修改历史 commit

2. Git stash(暂存工作区)

保存当前未提交的修改:

git stash

查看所有 stash:

git stash list

恢复:

git stash pop

3. Git submodule(子模块)

添加子模块:

git submodule add https://github.com/user/lib.git libs/lib

初始化并更新子模块:

git submodule update --init --recursive

4. Git cherry-pick(挑选特定提交)

git cherry-pick COMMIT_ID