【Docker项目实战】使用Docker部署todo任务管理器

【Docker项目实战】使用Docker部署todo任务管理器

一、todo介绍

1.1todo简介

  • todo简介

待办事项列表管理器(Todo)是一种帮助用户组织和跟踪日常任务的简单工具,通过创建、分类和设置优先级来确保高效地完成各项事务。它通常提供直观的界面和多种功能,如提醒、标签和截止日期设定,以提升个人或团队的生产力。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。

hostname IP地址 操作系统版本 Docker版本 镜像版本
ubuntu-001 192.168.3.251 Ubuntu 22.04.1 LTS 24.0.7 latest

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;

2.在Docker环境下部署todo任务管理器。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

bash 复制代码
root@ubuntu-001:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-09-29 08:29:36 UTC; 18min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 5227 (dockerd)
      Tasks: 123
     Memory: 272.5M
        CPU: 9.692s
     CGroup: /system.slice/docker.service
             ├─5227 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 检查Docker版本

检查Docker版本

bash 复制代码
root@ubuntu-001:~# docker -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

bash 复制代码
root@ubuntu-001:~#  docker compose version
Docker Compose version v2.19.1

四、下载todo镜像

拉取todo镜像,镜像名称为:prologic/todo

bash 复制代码
root@ubuntu-001:~# docker pull  prologic/todo
Using default tag: latest
latest: Pulling from prologic/todo
c158987b0551: Pull complete
7beea594d2fb: Pull complete
c080b5dd32b9: Pull complete
a66238e9d965: Pull complete
6d5e0cafd214: Pull complete
d0d22a3a0114: Pull complete
Digest: sha256:417106ae1964d3c7493570b61e643c681129fba7e8b47df290f5f1952980b969
Status: Downloaded newer image for prologic/todo:latest
docker.io/prologic/todo:latest

五、部署todo应用

5.1 创建部署目录

  • 创建部署目录
bash 复制代码
mkdir -p /data/todo && cd /data/todo
  • 设置目录权限
bash 复制代码
chmod -R 777 /data/todo/

5.2 编辑部署文件

/data/todo目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。

yaml 复制代码
version: '3'

services:
  todo:
    image: prologic/todo
    container_name: todo
    restart: always
    ports:
      - 6988:8000
    volumes:
      - ./data:/data
    environment: 
      - THEME=dracula

     

5.3 创建todo容器

执行以下命令,创建todo容器。

bash 复制代码
root@ubuntu-001:/data/todo# docker compose up -d
[+] Running 2/2
 ✔ Network todo_default  Created                                                                                                                         0.1s
 ✔ Container todo        Started                                                                                                                         0.4s

5.4 查看todo容器状态

检查todo容器状态状态,确保todo容器正常启动。

bash 复制代码
root@ubuntu-001:/data/todo# docker compose ps
NAME                IMAGE               COMMAND                  SERVICE             CREATED             STATUS              PORTS
todo                prologic/todo       "/init todo -dbpath ..."   todo                9 seconds ago       Up 8 seconds        0.0.0.0:6988->8000/tcp, :::6988->8000/tcp

5.5 查看todo容器日志

检查todo容器日志,确保todo服务正常运行。

bash 复制代码
root@ubuntu-001:/data/todo# docker compose logs
todo  | usermod: no changes
todo  | Configuring todo...
todo  | Switching UID=1000 and GID=1000

六、访问todo服务

访问地址:http://192.168.3.251:6988,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

七、总结

通过Docker部署Todo任务管理器的过程简洁高效,仅需几个命令即可完成环境搭建与应用启动。整个过程不仅提升了开发和部署的效率,还确保了应用在不同环境间的一致性和可移植性。实际使用中,Todo任务管理器运行稳定,界面直观且功能丰富,极大地提高了个人和团队的任务管理效率。这次实战进一步验证了Docker在简化应用部署和维护方面的强大优势。

相关推荐
Alsn861 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
JLWcai202510093 小时前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm
2601_961875243 小时前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj3 小时前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵4 小时前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏4 小时前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主4 小时前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang5 小时前
Docker 使用完整指南
运维·docker·容器
正经教主5 小时前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器
CodeStats7 小时前
【虚拟机】 从 CPU 指令到虚拟机隔离:虚拟机就是一个“模拟了完整硬件的普通进程”
java·docker