【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在简化应用部署和维护方面的强大优势。

相关推荐
MintonLee复现侠3 小时前
记录RK3588的docker中启动rviz2报错
docker·容器·ros·rk3588·rviz·rviz2
小白不想白a3 小时前
【k8s】k8s安装与集群部署脚本
云原生·容器·kubernetes
我来找弟弟3 小时前
open Euler--单master部署集群k8s
云原生·容器·kubernetes
大明湖畔的小鳄鱼5 小时前
docker安装centos
docker·容器·centos
liliangcsdn6 小时前
Mac M1探索AnythingLLM+SearXNG
人工智能·docker·云原生·eureka
HZ_YZ6 小时前
idea docker打包springboot镜像自动推送服务器
docker
旧时光巷6 小时前
【docker①】在VS Code中使用Docker容器
运维·vscode·docker·容器·环境配置·安装教程·镜像构建
岚天start7 小时前
K8S中,kubectl cordon、uncordon、drain、taint的区别
云原生·容器·kubernetes·cordon·uncordon·taint·drain
卸任10 小时前
Docker打包并部署Next.js
前端·docker·next.js