Docker容器脚本编写(Macvlan)

2024-06-21 18:28

本文主要是介绍Docker容器脚本编写(Macvlan),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要创建一个包含Docker容器操作的shell脚本(例如创建、查看状态、停止和启动容器等),你可以按照以下步骤来编写:

首先,创建一个新的文本文件,并将其命名为docker_operations.sh。然后,使用文本编辑器(如vim或nano)打开此文件,开始编写脚本。

#!/bin/bash# 定义网络名和基本容器配置
CONTAINER_NAME="net-1"
VOLUME_MOUNT="-v /home/norten/Public/tools:/mnt"
IMAGE_NAME="ubuntu"# 检查是否安装了docker,如果没有则提示安装
if ! command -v docker &> /dev/null; thenecho "Docker is not installed. Please install Docker and try again."exit 1
fi# 动态创建并运行容器的函数
function create_and_start_container() {local num="$1"local CONTAINER_NAME="container-$num"local IP_ADDRESS="192.168.0.$((60 + num))"docker run -itd \--name $CONTAINER_NAME \--network=$NETWORK_NAME \--ip=$IP_ADDRESS \$VOLUME_MOUNT \$IMAGE_NAMEecho "Container $CONTAINER_NAME created and started with IP $IP_ADDRESS."
}# 查看容器日志
function view_container_logs() {docker logs $CONTAINER_NAME
}# 查看容器状态
function check_container_status() {docker ps -a | grep $CONTAINER_NAME
}# 停止容器
function stop_container() {docker stop $CONTAINER_NAMEecho "Container $CONTAINER_NAME stopped."
}# 启动已停止的容器
function start_container() {docker start $CONTAINER_NAMEecho "Container $CONTAINER_NAME started."
}# 删除容器
function remove_container() {docker rm -f $CONTAINER_NAMEecho "Container $CONTAINER_NAME removed."
}# 主程序
case "$1" increate)create_and_start_container;;logs)view_container_logs;;status)check_container_status;;stop)stop_container;;start)start_container;;remove)remove_container;;*)echo "Usage: $0 {create|logs|status|stop|start|remove}"exit 1
esacexit 0

这个脚本定义了一些基本的函数,分别对应于创建并启动容器、查看日志、检查状态、停止、启动和删除容器的操作。你可以根据需要修改容器名、网络名、IP地址以及挂载的目录路径等。

保存文件后,给脚本执行权限:

chmod +x docker_operations.sh

现在你可以通过以下方式调用不同的操作:

./docker_operations.sh create    # 创建并启动容器
./docker_operations.sh logs     # 查看容器日志
./docker_operations.sh status  # 查看容器状态
./docker_operations.sh stop     # 停止容器
./docker_operations.sh start   # 启动容器
./docker_operations.sh remove  # 删除容器

 

 "$1"表示获取脚本运行时的第一个参数。

#!/bin/bash# 定义网络名和基本容器配置
NETWORK_NAME="net-1"
VOLUME_MOUNT="-v /home/norten/Public/tools:/mnt"
IMAGE_NAME="ubuntu"# 检查是否安装了docker
if ! command -v docker &> /dev/null; thenecho "Docker is not installed. Please install Docker and try again."exit 1
fi# 查看帮助命令
function help() {docker logs $CONTAINER_NAME
}# 动态创建并运行容器的函数
function create_and_start_container() {local num="$1"local CONTAINER_NAME="container-$num"local IP_ADDRESS="192.168.0.$((60 + num))"docker run -itd \--name $CONTAINER_NAME \--network=$NETWORK_NAME \--ip=$IP_ADDRESS \$VOLUME_MOUNT \$IMAGE_NAMEecho "Container $CONTAINER_NAME created and started with IP $IP_ADDRESS."
}# 主程序
#[ -z "$2" ]检查第二个参数($2)是否存在,如果为空(即没有提供第二个参数),则打印一条错误信息,指导用户如何正确使用脚本,并以错误码1退出。
case "$1" increate)if [ -z "$2" ]; thenecho "Please provide a number to create the container (e.g., ./docker_operations.sh create 31)."exit 1ficreate_and_start_container "$2"  # 修正函数名为create_and_start_container;;help)  # 新增的帮助选项echo "Usage: $0 {create <num>|logs|status|stop|start|remove}"echo "  create <num>: 创建一个容器,其中<num>是要创建的容器编号。"echo "  logs: 查看指定容器的日志(功能待实现)"echo "  status: 查看容器状态(功能待实现)"echo "  stop: 停止指定容器(功能待实现)"echo "  start: 启动指定容器(功能待实现)"echo "  remove: 删除指定容器(功能待实现)"exit 0;;logs|status|stop|start|remove)echo "Functionality for $1 is not updated to handle numbered containers yet."exit 1;;*)echo "Invalid command. Use './docker_operations.sh help' for usage instructions."exit 1;;
esacexit 0

这篇关于Docker容器脚本编写(Macvlan)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081987

相关文章

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启