您的位置:首页 > 汽车 > 新车 > Docker容器脚本编写(Macvlan)

Docker容器脚本编写(Macvlan)

2024/7/4 5:44:28 来源:https://blog.csdn.net/m0_52980547/article/details/139860489  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com