王培顺的博客&WangPeishun’s Blog

分类 读书笔记 下的文章

以下是一份详细的Docker使用手册目录及核心内容概要,涵盖从基础到进阶的实践指南,供您学习参考。


目录

  1. Docker 简介
  2. 安装与配置
  3. 核心概念
  4. 基础命令操作
  5. 镜像管理与Dockerfile
  6. 容器网络
  7. 数据持久化
  8. Docker Compose
  9. Docker Swarm 集群
  10. 安全与最佳实践
  11. 常见问题与调试

1. Docker 简介

  • 容器化技术:轻量级虚拟化,共享内核,隔离进程和资源。
  • Docker 优势

    • 快速部署
    • 环境一致性
    • 资源高效利用
    • 易于扩展
  • 核心组件

    • Docker Daemon(守护进程)
    • Docker Client(客户端)
    • Images(镜像)
    • Containers(容器)
    • Registry(镜像仓库,如Docker Hub)

2. 安装与配置

Ubuntu/CentOS 安装

# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证安装
sudo docker run hello-world

Windows/macOS

配置镜像加速器(国内用户)

// 编辑 /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com", "https://mirror.ccs.tencentyun.com"]
}

重启服务:sudo systemctl restart docker


3. 核心概念

  • 镜像 (Image):只读模板,包含运行环境和应用程序。
  • 容器 (Container):镜像的运行实例,具有可写层。
  • 仓库 (Registry):存储和分发镜像的服务(如Docker Hub、阿里云镜像仓库)。

4. 基础命令操作

镜像管理

docker pull ubuntu:20.04        # 拉取镜像
docker images                   # 查看本地镜像
docker rmi <image_id>           # 删除镜像

容器操作

docker run -d -p 80:80 --name mynginx nginx   # 后台运行容器并映射端口
docker ps -a                                  # 查看所有容器
docker start/stop/restart <container_id>      # 启停容器
docker exec -it <container_id> /bin/bash      # 进入容器终端
docker logs <container_id>                    # 查看日志
docker rm <container_id>                      # 删除容器

5. 镜像管理与Dockerfile

Dockerfile 示例

FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

构建镜像

docker build -t myapp:v1 .

推送镜像到仓库

docker tag myapp:v1 username/myapp:v1
docker push username/myapp:v1

6. 容器网络

  • 网络模式bridge(默认)、hostnone、自定义网络。
  • 创建自定义网络

    docker network create my_network
    docker run --network=my_network --name app1 myapp

7. 数据持久化

Volume 数据卷

docker volume create my_volume
docker run -v my_volume:/data --name db mysql

Bind Mount 目录挂载

docker run -v /host/path:/container/path nginx

8. Docker Compose

docker-compose.yml 示例

version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example

常用命令

docker-compose up -d    # 启动服务
docker-compose down     # 停止并删除容器
docker-compose logs     # 查看日志

9. Docker Swarm 集群

docker swarm init --advertise-addr <MANAGER_IP>
docker service create --replicas 3 -p 80:80 --name web nginx
docker service scale web=5

10. 安全与最佳实践

  • 最小化镜像:使用Alpine基础镜像,多阶段构建。
  • 非root用户运行容器

    RUN useradd -m myuser
    USER myuser
  • 定期更新镜像:修复安全漏洞。
  • 限制资源

    docker run -m 512m --cpus 1.5 myapp

11. 常见问题

容器无法启动

docker inspect <container_id>   # 查看详细配置
docker logs <container_id>      # 检查日志

清理无用资源

docker system prune -a          # 删除停止的容器、未使用的镜像和网络

附录


今天早上上班路上,看了头条的一个关于本、硕、博区别的文章,虽然不知道其观点背后的数据支撑是否靠谱,但自认为它说的有道理。

请不要再对毕业后不从事本专业的大学生们说三道四。


1.本科学习与研究生学习的区别:

本科是素质教育,是从未成年到成人的教育,是让他们完成文明教育的过程。本科教育是培养学生做人的品格和个人修养的过程,同时本科教育也是培养学生获得继续学习和终生学习能力的一个重要阶段。

研究生教育不是素质教育,而是专业教育,研究生的学习带有研究性质,学习的方向具有单一指向性,学习的内容专业性比较强。

本科生毕业后终生从事其所学专业的人数比例一般不是超过10%。硕士生毕业后终生从事其硕士专业的比例会在15%左右。而博士生以博士专业为终生职业的人数不会低于三分之二。

2.硕士生学习与博士生学习的区别

硕士研究生和博士研究生的区别是专业水平的区别,也就是研究技能的区别,而不是素质的区别。硕士生培养的是工作技能,毕业后从事事务性工作,博士生培养的是学术技能,毕业后一般从事教学科研工作和学术研究。硕士生注重的是学习普遍性的研究技能,完成上级交代下来的任何一项事务性工作,调查了解基本情况,判断问题的性质、设计解决问题的方案,找到实施的方法与路径。博士生注重学术能力的培养,寻求真理、发现规律、探索人类尚不知道的知识,要具有扎实的研究能力,高昂的学术激情和学术奉献精神。

 

“人可以被消灭,但不可以被打倒。”


这是很多读者,看完《老人与海》后便奉为经典的一句话。

我比较感性,也无法体会到“老人”那个时代背景下更深的东西,

但我仍十分认可这句话,更是佩服“老人”的坚韧。

 

不过,给我感觉最深刻的却是孩子对老人的感情,

那种发自内心、纯真又淳朴的真挚的感情。

孩子对老人的一些行为,超出了接济与照顾的范畴,

我并没有发现老人和孩子有什么十分特别的关系,(以现在的价值观来看)。

但老人与孩子的关系确实那么的和谐,

似乎超越了现在的“爷孙”的关系。

 

也许老人与孩子的那段情感并不是那么令人动容,

只是我在现在的社会上见得太少的缘故。