Linux 常用命令(Docker / Git )

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

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

目录


Docker

一、Docker 基础常用命令

1. 查看运行与全部容器

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

2. 查看镜像

docker images
docker images

3. 拉取镜像

docker pull nginx:latest
docker pull nginx:latest

4. 运行容器

常用参数:

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

示例:

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

5. 进入容器

docker exec -it web bash
docker exec -it web bash

6. 启停容器

docker stop web
docker start web
docker restart web
docker stop web
docker start web
docker restart web

7. 查看容器日志

docker logs -f web
docker logs -f web

8. 删除容器与镜像

docker rm web
docker rmi nginx:latest
docker rm web
docker rmi nginx:latest

9. docker-compose 基本使用

docker-compose up -d
docker-compose down
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 .
docker build -t my-nginx .

3. Docker 网络

查看网络:

docker network ls
docker network ls

创建自定义网络:

docker network create mynet
docker network create mynet

容器加入网络:

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

4. Docker 数据卷(Volumn)

创建数据卷:

docker volume create mydata
docker volume create mydata

挂载到容器:

docker run -d -v mydata:/var/lib/mysql mysql
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:
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 "[email protected]"
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

2. 初始化与克隆

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

3. 常用基本操作

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

4. 分支管理

git branch
git branch dev
git switch dev
git branch
git branch dev
git switch dev

5. 合并

git merge dev
git merge dev

6. 远程仓库

git remote add origin https://github.com/user/repo.git
git push -u origin main
git pull origin main
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
git switch dev
git rebase main

交互式 rebase:

git rebase -i HEAD~5
git rebase -i HEAD~5

常用于:

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

2. Git stash(暂存工作区)

保存当前未提交的修改:

git stash
git stash

查看所有 stash:

git stash list
git stash list

恢复:

git stash pop
git stash pop

3. Git submodule(子模块)

添加子模块:

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

初始化并更新子模块:

git submodule update --init --recursive
git submodule update --init --recursive

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

git cherry-pick COMMIT_ID
git cherry-pick COMMIT_ID