Docker Compose 从入门到实践

介绍 Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过使用一个 YAML 文件,您可以配置应用程序需要的所有服务。然后,只需一个命令,就可以创建并启动所有服务。 TrueNAS SCALE 24.10 开始使用docker和docker compose部署应用,所以写这一篇简单的介绍一下如何编写docker compose文件(即TrueNAS SCALE 的自定义应用) 编写docker-compose.yaml 文件 docker-compose.yaml 文件使用 YAML 格式定义服务、网络和卷。以下是文件的基本结构: services: service_name: image: image_name:tag build: . ports: - "host_port:container_port" volumes: - host_path:container_path environment: - ENV_VAR=value depends_on: - other_service 有过docker-compose经验的同学可能已经发现了不对劲的地方,为什么第一行少了version:'3',因为新版已经去掉了这个版本信息,直接写service就行 示例:部署一个简单的 Web 应用 我们以nginx举例 services: web: image: nginx:latest ports: - "8080:80" volumes: - /mnt/SSD/apps/nginx:/usr/share/nginx/html 解释: services:定义服务列表,这里定义了一个名为web 的服务。 image:指定使用的镜像,这里使用官方的 Nginx 镜像。 ports:将主机的 8080 端口映射到容器的 80 端口。 volumes:将本地的/mnt/SSD/app/nginx 目录挂载到容器内的/usr/share/nginx/html 注意:主机端口不要与其他应用冲突,/mnt/SSD/app/nginx 这个路径需要提前创建,你可以创建数据集或者直接命令行里创建目录,数据集的路径按下图示例: 在图片显示的路径前面要加上/mnt,也就是/mnt/SSD/apps/nginx 这样 ...

March 14, 2025 · 1 min

安装Docker以及其他容器

一键安装脚本 curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh Redhat系安装docker 安装依赖 dnf -y install yum-utils device-mapper-persistent-datalvm2 导入docker源 wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo 官方源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 阿里源 dnf makecache 更新索引 dnf install docker-ce docker-ce-cli containerd.io 安装docker组件 Debian系安装docker 安装依赖 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release 导入gpg公钥 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 添加docker源 官方源 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 阿里源 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 更新索引 sudo apt update 安装docker组件 sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin 常规Docker组件 Portainer 拉取映像 docker pull portainer/portainer 创建并运行docker docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /root/portainer:/data portainer/portainer

March 12, 2025 · 1 min

TrueNAS24.10docker开机自动替换源

存放于/root目录下 #!/bin/bash sleep 30 # 备份原始文件 sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak # 使用 jq 添加新的键值对并写入临时文件 sudo jq '. + { "registry-mirrors": ["https://docker.1panel.live"] }' /etc/docker/daemon.json | sudo tee /etc/docker/daemon.json.tmp > /dev/null # 检查 jq 是否成功 if [ $? -eq 0 ]; then # 替换原始文件 sudo mv /etc/docker/daemon.json.tmp /etc/docker/daemon.json echo "成功更新 daemon.json 文件。" else echo "更新 daemon.json 文件失败,恢复备份。" sudo mv /etc/docker/daemon.json.bak /etc/docker/daemon.json fi # 重启 Docker 服务 sudo systemctl restart docker

February 27, 2025 · 1 min