【Web 可视化操作 Docker】可视化操作 Docker 应用

开门见山

本实践指南将带您走进Docker的世界,从基础的安装和配置开始,逐步深入到如何使用Portainer进行远程可视化管理。无论您是希望在个人项目中尝试Docker,还是在企业环境中寻求更高效的容器管理解决方案,本指南都将为您提供详尽的步骤和实用的技巧。

我们将从环境准备开始,确保您的系统满足Docker的运行要求。接着,我们会引导您加入Docker的官方APT源,以便获取最新的软件包。在安装过程中,我们还会提供国内源的选项,帮助您加速下载速度,提高安装效率。

安装完成后,我们将通过运行一个简单的Python容器来验证Docker的安装状态。随后,您将学习到如何使用Docker的基本指令来管理容器,包括查看、启动、停止和删除容器。此外,我们还会介绍如何设置容器的自启动策略,确保您的服务在遇到问题时能够自动恢复。

为了提升管理体验,我们将指导您安装并配置Portainer,让您能够通过一个友好的用户界面来监控和操作Docker容器。我们还会提供如何设置Docker服务开机自启动的指令,确保您的容器环境始终处于就绪状态。

最后,我们会讨论Docker端口映射的重要性,帮助您避免在部署过程中遇到的端口冲突问题。

安装环境

apt update
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

加入 Docker 的 GPG 公钥和 apt 源

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

也可以加入国内源:

curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

安装 Docker CE

apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

验证安装

docker --version

运行第一个容器

为了测试Docker,您可以运行一个简单的容器,比如一个Python容器。在终端输入以下命令:

docker run -it python:3.8 bash

这将下载(如果本地没有)并运行一个Python 3.8的容器,并且启动一个bash shell。

一旦容器运行起来,您可以尝试在容器内部做一些操作,比如运行Python解释器:

python --version

在容器内部,您可以通过输入exit命令或者使用Ctrl+D来退出容器

docker 基本指令

您可以使用以下命令来查看当前正在运行的容器:

docker ps

如果您想查看所有容器(包括未运行的),可以使用:

docker ps -a

停止正在运行的容器:

docker stop <容器名称或ID>

删除容器(在删除容器之前,你需要确保容器已经停止运行):

docker rm <容器名称或ID>

启动或重启容器:

docker restart <容器名称或ID>

进入容器内部,进入后可以通过输入exit命令退出:

docker exec -it portainer /bin/bash

添加 docker 可视化操作

这里使用开源项目 portainer ,

sudo docker run -p 9001:9000 -p 8001:8000 --name portainer_test \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer

通过浏览器访问下面网址,192.168.3.107是 Linux 服务器的 IP 地址:

http://192.168.3.107:9001

在界面上注册账号密码:
admin/dockeradmin@314

Docker 服务配置开机启动

  1. 启动 Docker 服务
sudo systemctl start docker
  1. 设置开机自启动
sudo systemctl enable docker
  1. 验证 Docker 服务状态
sudo systemctl status docker
  1. 要停止 Docker 服务,你可以使用以下命令
sudo systemctl stop docker

容器自启动策略

  1. 创建容器时指定自启动

当你使用docker run命令创建容器时,可以添加--restart标志来设置容器的自启动策略。例如,如果你想让容器在退出时总是重启,可以这样做:

docker run --restart=always -d --name my-container my-image

这里的--name my-container为你的容器指定了一个名称,my-image是你的Docker镜像名称。--restart=always表示无论容器以何种方式退出,Docker都会尝试重新启动它。

  1. 修改已存在的容器自启动策略

如果容器已经创建,你可以使用docker update命令来修改其重启策略。例如,要为名为my-container的容器设置自启动:

docker update --restart=always my-container

这将更新容器的配置,使其在退出时自动重启。

  1. 取消容器的自启动

如果你想取消容器的自启动策略,可以将其设置为no

docker update --restart=no my-container

这将使容器在退出后不再自动重启。

  1. 查看容器的当前重启策略

你可以使用docker inspect命令来查看容器的当前重启策略:

docker inspect -f '{{.HostConfig.RestartPolicy}}' my-container

这将输出容器的重启策略,例如alwayson-failure等。

Docker 的端口映射

如果你已经在同一个服务器上部署了一个网站,并且想要避免端口冲突,你需要确保Docker容器使用的端口不会与网站或其他服务使用的端口冲突。以下是一些步骤和建议来设置Docker命令以避免端口冲突:

  1. 检查现有服务的端口:首先,你需要确定服务器上已经使用的端口。你可以使用如netstatss等工具来查看当前正在使用的端口列表。

  2. 选择未被使用的端口:在确定了哪些端口已经被使用后,选择两个未被使用的端口用于Portainer。例如,如果9000和8000端口已经被使用,你可以选择9001和8001。

  3. 修改Docker命令:在Docker命令中,将-p参数的值更改为你选择的未被使用的端口。例如:

sudo docker run -p 9001:9000 -p 8001:8000 --name portainer --restart=always ... [其他选项] ... -d portainer/portainer

这个命令将Portainer的9000端口映射到宿主机的9001端口,将8000端口映射到宿主机的8001端口。

开启你的Docker之旅

随着本实践指南的结束,您已经掌握了在核桃派上部署Docker环境,并利用 Portainer 进行高效管理的全部技能。现在,您已经准备好将Docker的强大功能应用到您的项目中,无论是开发、测试还是生产部署。

1 Like

PS: 通过 Docker 容器化技术来部署和运行一个 Node.js 应用程序。这将帮助您在隔离的环境中开发和测试您的应用,同时确保环境的一致性。

拉取 Node.js 镜像

首先,您需要从 Docker Hub 获取 Node.js 的官方镜像。打开您的终端或命令行界面,并执行以下命令:

docker pull node

这将下载Node.js的最新版本。如果您需要特定版本的Node.js,可以在镜像名称后面添加相应的标签,例如:

docker pull node:14

2. 运行 Node.js 容器

下载镜像后,您可以启动一个Node.js容器。使用以下命令:

sudo docker run -it -p 3002:3000 --name node_test node bash

这个命令会做以下几件事情:

  • 使用 sudo 以超级用户权限运行 Docker。
  • -it 参数确保您在容器内部有一个交互式的终端。
  • -p 3002:3000将容器内的3000端口映射到宿主机的3002端口。
  • --name node_test为新创建的容器命名为node_test
  • node bash指定使用Node.js镜像,并启动一个Bash shell。

3. 在容器中使用 Node.js

容器启动后,您可以在其中使用Node.js进行开发。例如,创建一个 NextJS 应用程序:

cd /usr/local
npx create-next-app@latest

按照提示操作,选择您的项目设置。例如,设置项目名称、是否使用TypeScript、ESLint、Tailwind CSS等。

创建项目后,运行您的应用:

npm install -g npm@latest
cd my-app
npm run dev

确保您已经安装了最新版本的npm,然后进入您的项目目录并启动开发服务器。

4. 访问您的 Node.js 应用

最后,如果您在局域网内的远程电脑(例如Windows系统)上,您可以通过访问以下地址来查看您的Node.js应用:

http://192.168.3.107:3002

这里的 192.168.3.107 是您Linux服务器的 IP 地址。请确保您的远程电脑和服务器在同一网络下,并且服务器的防火墙设置允许通过3002端口的访问。

1 Like