Docker在Debian下的安装方法
在国内安装 Docker 时,由于网络原因,直接使用 Docker 官方的源可能会非常慢或者无法访问。因此,推荐使用国内的镜像源进行安装。以下是使用国内镜像源在 Debian 系统上安装 Docker 的步骤:
-
更新软件包索引:
打开终端并执行以下命令更新软件包列表:
sudo apt-get update -
安装所需的软件包:
Docker 的安装需要
apt能够通过 HTTPS 使用仓库:sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -
添加 Docker 的国内官方 GPG 密钥:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add - -
向
sources.list添加 Docker 软件源:首先,需要找到一个国内的 Docker 镜像源。这里以阿里云为例,你可以根据你的 Debian 版本替换下面命令中的
$(lsb_release -cs)(这个命令会自动获取你的 Debian 版本):echo "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list -
再次更新软件包索引:
sudo apt-get update -
安装 Docker CE(社区版):
sudo apt-get install docker-ce docker-ce-cli containerd.io -
验证 Docker 是否安装成功:
安装完成后,可以运行一个测试镜像来验证是否安装成功:
sudo docker run hello-world如果看到欢迎消息,说明 Docker 已经成功安装并可以使用。
-
(可选)配置 Docker 镜像加速器:
为了提高拉取镜像的速度,你还可以配置 Docker 使用国内的镜像加速服务。以下是配置阿里云镜像加速器的方法:
-
访问阿里云 Docker 镜像服务页面,登录后获取你的专属加速器地址。
-
修改 Docker 的配置文件
/etc/docker/daemon.json(如果文件不存在,则需要创建此文件),加入以下内容(替换<your_code>为你的加速器地址):{ "registry-mirrors": ["https://<your_code>.mirror.aliyuncs.com"] } -
重新加载 Docker 配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart docker
-
Docker构建
要将 Python 程序导出为 Docker 镜像并在服务器上部署,你需要遵循以下步骤:
-
编写 Python 程序: 确保你的 Python 程序是完整的并且可以在本地运行。将上面的代码保存到一个文件中,例如
url_converter.py。 -
创建
requirements.txt文件(如果有外部依赖): 如果你的 Python 程序依赖于外部库,你需要创建一个requirements.txt文件,列出所有的依赖项。在这个例子中,你不需要任何外部依赖,因为你只使用了 Python 的标准库。 -
编写 Dockerfile: 创建一个名为
Dockerfile的文件,其中包含构建 Docker 镜像的指令。
# 使用官方 Python 运行时作为父镜像
FROM python:3.9-slim
# 设置工作目录为 /app
WORKDIR /app
# 将当前目录内容复制到容器中的 /app
COPY . /app
# 如果你有 requirements.txt 文件(外部依赖),取消下面一行的注释
# RUN pip install --no-cache-dir -r requirements.txt
# 让端口 80 可供外界访问
EXPOSE 80
# 定义环境变量
ENV NAME World
# 在容器启动时运行 python url_converter.py
CMD ["python", "url_converter.py"]
- 构建 Docker 镜像: 在包含
Dockerfile和 Python 程序的目录中运行以下命令来构建 Docker 镜像。
docker build -t url-converter .
- 运行 Docker 容器: 使用以下命令来运行你的 Docker 容器。
docker run -p 4000:80 url-converter
这将把容器的 80 端口映射到主机的 4000 端口。你可以按需更改端口号。
- 上传镜像到 Docker Hub(可选): 如果你想在另一台服务器上运行你的容器,你可能需要将镜像上传到 Docker Hub 或其他容器注册中心。
docker login
docker tag url-converter yourusername/url-converter:1.0
docker push yourusername/url-converter:1.0
替换 yourusername 为你的 Docker Hub 用户名,并且确保你对 url-converter 镜像有写权限。
- 在服务器上运行: 登录到你的服务器,然后使用
docker pull命令拉取你上传的镜像,并使用docker run命令运行它。
docker pull yourusername/url-converter:1.0
docker run -p 4000:80 yourusername/url-converter:1.0
确保你的服务器上已经安装了 Docker,并且你有权限运行 Docker 命令。
安装DrawIO
docker run -it --rm --name="draw" -p 8080:8080 -p 8443:8443 jgraph/drawio
安装Docker-compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。要安装 Docker Compose,通常你需要下载其二进制文件,赋予执行权限,然后放到系统的 PATH 中。以下是在 Linux 系统上安装 Docker Compose 的一般步骤:
-
下载最新版本的 Docker Compose:
首先,你需要访问 Docker Compose 的 GitHub 发布页面(https://github.com/docker/compose/releases)来找到最新版本的下载链接。你可以使用
curl命令来下载它。假设你想安装版本2.x.x,你可以运行以下命令:sudo curl -L "https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose请确保将
v2.x.x替换为你希望安装的最新版本。 -
给予可执行权限:
下载完成后,你需要给予二进制文件执行权限:
sudo chmod +x /usr/local/bin/docker-compose -
验证安装:
安装完成后,你可以通过运行以下命令来测试
docker-compose是否安装成功:docker-compose --version这应该会输出已安装的 Docker Compose 版本。
如果你使用的是 Windows 或者 Mac,并且已经安装了 Docker Desktop,那么 Docker Compose 应该已经包含在内,无需单独安装。
对于某些 Linux 发行版,你也可以使用包管理器来安装 Docker Compose,例如在基于 Debian 的系统上,你可以运行:
sudo apt-get install docker-compose
请注意,使用包管理器安装的版本可能不是最新的。因此,建议从 Docker 的官方 GitHub 仓库下载最新版本。
Docker-compose 使用
要将 docker run 命令转换为 docker-compose 配置,你需要创建一个 docker-compose.yml 文件,并在其中指定服务的配置。以下是一个示例 docker-compose.yml 文件,它与你提供的 docker run 命令等效:
version: '3.8' # 可以根据需要选择合适的版本号
services:
drawio:
image: jgraph/drawio # 使用 jgraph/drawio 镜像
container_name: draw # 容器名称为 draw
ports:
- "8080:8080" # 映射宿主机的 8080 端口到容器的 8080 端口
- "8443:8443" # 映射宿主机的 8443 端口到容器的 8443 端口
restart: unless-stopped # 如果容器非正常停止则重启容器
在创建了 docker-compose.yml 文件之后,你可以通过以下命令启动服务:
docker-compose up -d
这将以守护进程模式启动 drawio 服务。如果你想在前台运行它(类似于 docker run -it),可以省略 -d 标志:
评论区