前言
由于上次不小心执行rm -rf /*导致了我的电脑焕然一新()
之后一直在尝试重新搭建博客,然而由于放弃了原有的Hexo选择了Hugo,导致进展一直不甚顺利
不过在经过多次尝试和调整之后,新的博客也是搭好了,后面可以正常更新了。
虽然还有一些问题没处理好,但是大体记录学习过程的目的还是能达到的,小问题就暂且按下不表吧()
Docker学习
关于Docker
众所周知Docker是一个容器引擎,性能很好。
详细了解:
Debian Docker 安装
Docker 支持以下的 64 位 Debian 版本:
- Debian Bookworm 12 (稳定版)
- Debian Bullseye 11 (旧稳定版)
支持的架构包括 x86_64(amd64)、armhf、arm64 和 ppc64le。
卸载旧版本
如果你之前安装过 Docker Engine 之前,你需要卸载旧版本,避免冲突:
|
|
使用官方安装脚本自动安装
安装命令如下:
|
|
手动安装(推荐)
1. 更新软件包
首先,更新现有的软件包和包缓存:
|
|
2. 安装依赖包
安装一些需要的依赖包,这些包允许 apt 使用 HTTPS 协议来访问 Docker 仓库:
|
|
3. 添加 Docker 官方 GPG 密钥
使用下面的命令来添加 Docker 官方的 GPG 密钥:
|
|
4. 添加 Docker 仓库
添加 Docker 官方的 APT 软件源:
|
|
5. 更新 APT 软件包缓存
添加仓库后,更新 APT 包索引:
|
|
确保你现在从 Docker 官方仓库安装 Docker 而不是 Debian 默认仓库:
|
|
你应该看到它指向 https://download.docker.com/,确保这就是官方的 Docker 仓库。
6. 安装 Docker
现在,你可以安装 Docker:
|
|
7. 启动并验证 Docker
启动 Docker 并设置为开机自启:
|
|
你可以使用以下命令来验证 Docker 是否安装成功:
|
|
运行以下测试命令确保 Docker 正常工作:
|
|
卸载 docker
删除安装包:
|
|
删除镜像、容器、配置文件等内容:
|
|
Docker 基本命令
这里记录一下Docker基本命令,方便查(其实感觉查菜鸟教程更快一点() )
| 命令 | 功能 | 示例 |
|---|---|---|
docker run |
启动一个新的容器并运行命令 | docker run -d ubuntu |
docker ps |
列出当前正在运行的容器 | docker ps |
docker ps -a |
列出所有容器(包括已停止的容器) | docker ps -a |
docker build |
使用 Dockerfile 构建镜像 | docker build -t my-image . |
docker images |
列出本地存储的所有镜像 | docker images |
docker pull |
从 Docker 仓库拉取镜像 | docker pull ubuntu |
docker push |
将镜像推送到 Docker 仓库 | docker push my-image |
docker exec |
在运行的容器中执行命令 | docker exec -it container_name bash |
docker stop |
停止一个或多个容器 | docker stop container_name |
docker start |
启动已停止的容器 | docker start container_name |
docker restart |
重启一个容器 | docker restart container_name |
docker rm |
删除一个或多个容器 | docker rm container_name |
docker rmi |
删除一个或多个镜像 | docker rmi my-image |
docker logs |
查看容器的日志 | docker logs container_name |
docker inspect |
获取容器或镜像的详细信息 | docker inspect container_name |
docker exec -it |
进入容器的交互式终端 | docker exec -it container_name /bin/bash |
docker network ls |
列出所有 Docker 网络 | docker network ls |
docker volume ls |
列出所有 Docker 卷 | docker volume ls |
docker-compose up |
启动多容器应用(从 docker-compose.yml 文件) |
docker-compose up |
docker-compose down |
停止并删除由 docker-compose 启动的容器、网络等 |
docker-compose down |
docker info |
显示 Docker 系统的详细信息 | docker info |
docker version |
显示 Docker 客户端和守护进程的版本信息 | docker version |
docker stats |
显示容器的实时资源使用情况 | docker stats |
docker login |
登录 Docker 仓库 | docker login |
docker logout |
登出 Docker 仓库 | docker logout |
Docker 镜像设置
由于一些原因,国内无法直连Docker官方仓库,原本的镜像站现在也都无法使用了,现在只剩一部分个人搭的镜像站可以使用,因此请经常检查自己的Docker镜像是否还能用
配置方式:
临时使用:
直接使用:
直接用镜像域名拼接上官方镜像名。例如:要拉取 istio/distroless,可以这样写:
|
|
长久有效:
以下命令在Debian 12.5,Ubuntu 16.04+适用
修改文件 /etc/docker/daemon.json(如果不存在则需要创建创建,注意不要写入中文,要带 https://),并重启服务。
|
|
|
|
使用docker pull 拉取镜像进行测试
Docker file
什么是 Dockerfile?
Dockerfile 是一个文本文件,包含了构建 Docker 镜像的所有指令。
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
通过定义一系列命令和参数,Dockerfile 指导 Docker 构建一个自定义的镜像。
例如:
|
|
基础知识
- 每个保留关键字(指令)都必须是大写字母
- 执行从上到下顺序执行
- #表示注释
- 每一个指令都会创建提交一个新的镜像层
- Dockerfile:是定义了构建镜像文件的源代码,能够构建镜像文件
- Docker Images:通过DockerFile构建生成的镜像,最终发布和运行的产品
- Docker Container:容器就是镜像运行起来提供服务的
Dockerfile的指令
|
|
Docker Compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
注意:安装docker的同时,已经安装了Docker compose V2,无需再另外安装 Docker compose V1 ;Docker compose V2的命令以docker compose开头,如docker compose up
Docker-compose.yml
Dockerfile让容器在任何地方运行,但如果要运行多个容器就十分麻烦,这就需要使用docker-compose.yml文件。
例如:
|
|
两个概念
- services(服务):容器、应用(mysql、nginx…)
- project(项目):一组关联的容器
Docker compose常用命令
|
|
requirements.txt
有时候可能会遇见使用requirements.txt来存储依赖的情况,这个不必多言()
Python项目依赖,生成requirements.txt 有两种方法
1、进入需要生成文件的目录,执行
|
|
,此方法会包含环境所有的依赖包。
直接使用此命令,会把当前共用python环境的所有包都写进去,这些不必要的。可以在目标目录下面先pipenv shell,进入pipenv环境,再用上面的命令,产生的requirements.txt 就只包含虚拟环境的依赖项。
2、pip install pipreqs
进入需要生成文件的目录执行: pipreqs ./ (或者直接 pipreqs D:\test(实际路径))
在此时可能会遇见
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 776: illegal multibyte sequence
这个错误.
解决方法:指定编码格式 pipreqs ./ –encoding=utf8
如果要安装requirements.txt中的类库内容,那么你可以执行:
|
|
在dockerfile里就是
|
|
参考: