docker 常用命令

1.docker 给容器换名字

在Docker中,您可以使用docker rename命令给正在运行的容器换名。

命令格式如下:

bash 复制代码
docker rename old_container_name new_container_name

这里,old_container_name是容器当前的名字,new_container_name是您想要设置的新名字。

例如,如果您的容器名字是my_container,并且您想要将其改名为my_new_container,您可以执行以下命令:

bash 复制代码
docker rename my_container my_new_container

另外一种根据容器ID修改容器名称

docker rename 容器id 新容器名

修改前:

输入命令行:

修改后:

启动容器:

2. docker 启动redis 镜像
bash 复制代码
docker run --name redis --network host -itd redis
3.docker 启动MongoDB
3.1使用 Docker CLI 搭建 MongoDB
1. 运行 MongoDB 容器

首先,我们使用以下命令来启动一个 MongoDB 容器:

Go 复制代码
docker run -itd --name mongodb_comm -v $PWD 

/data:/data/db -p 27017:27017 mongo:4.4 --auth

参数解释:

  • -itd: 这三个参数通常一起使用,i 表示交互式模式,t 分配一个伪终端,d 表示后台运行。
  • --name mongodb_comm: 为容器指定一个名字 mongodb_comm,方便后续的操作和管理。
  • -v $PWD/data:/data/db: 将宿主机当前目录下的 data 目录挂载到容器的 /data/db 目录。这样做的目的是将 MongoDB 数据持久化到宿主机上,以便容器重启后数据不会丢失。
  • -p 27017:27017: 将容器内部的 27017 端口映射到宿主机的 27017端口上,使得外部可以通过宿主机的 27017端口访问 MongoDB。
  • mongo:4.4: 使用 MongoDB 的 4.4 版本镜像。
  • --auth: 开启 MongoDB 的身份验证,增加数据库安全性。
2. 创建用户

接下来,我们需要创建一个用户,以便能够以验证方式连接到 MongoDB:

Go 复制代码
docker exec -it mongodb_comm mongo admin

在 MongoDB shell 中执行以下命令创建用户:

Go 复制代码
db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});

这个命令创建了一个名为 root,密码为 123456 的用户,拥有管理所有数据库的权限和在任何数据库中读写的权限。

3. 连接测试

为了验证是否成功,可以尝试使用以下命令进行连接测试:

Go 复制代码
db.auth('root', '123456')
4. 插入和查询数据

作为测试,我们可以尝试插入一些数据,然后查询:

Go 复制代码
db.user.insert({"name":"abc","age":18})

db.user.find()
3.2 使用 Docker Compose 搭建 MongoDB

Docker Compose 文件

要使用 Docker Compose 搭建 MongoDB,首先需要创建一个 docker-compose.yml 文件,内容如下:

Go 复制代码
version: '3.1'
services:
  mongodb:
    image: mongo:4.4
    ports:
      - "27017:27017"
    volumes:
      - ./data:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 123456
    command: --auth

配置解释:

  • version: 指定 Docker Compose 文件格式版本。
  • services: 定义要运行的服务,这里是 mongodb。
  • image: 使用的 MongoDB 镜像版本。
  • ports: 将容器的 27017 端口映射到宿主机的 27017 端口。
  • volumes: 数据持久化配置,与 CLI 方法相同。
  • environment: 设置环境变量,这里是初始化时的 root 用户名和密码。
  • command: 容器启动时执行的命令,这里开启了认证模式。
  • 使用 docker-compose up -d 命令启动服务。

参考:https://blog.csdn.net/LogicLancer/article/details/136713394

3.3 docker 启动mongodb

要在Docker中启动MongoDB,您可以使用MongoDB的官方Docker镜像。以下是一个简单的命令,用于启动一个MongoDB容器:

bash 复制代码
docker run --name some-mongo -d mongo

这里的参数解释如下:

  • --name some-mongo:给容器指定一个名字,方便之后的引用。

  • -d:表示以后台模式运行容器。

  • mongo:是从Docker Hub拉取的官方MongoDB镜像名。

如果您想要将MongoDB数据保存在本地主机,可以使用卷(volume)来挂载数据目录:

bash 复制代码
docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo

这里,/my/own/datadir是您本地机器上的目录,而/data/db是容器内MongoDB默认存储数据的目录。

如果您需要自定义MongoDB的配置,可以创建一个配置文件并将其挂载到容器中:

bash 复制代码
docker run --name some-mongo -v /my/own/mongod.conf:/etc/mongo/mongod.conf -d mongo

确保您的/my/own/mongod.conf是配置文件的正确路径。

以上命令假设您已经安装了Docker并且可以在终端中运行。如果您是Windows或者Mac用户,请确保Docker Desktop已经安装并正确运行。

4.docker logs查看日志

docker logs 命令用于查看 Docker 容器的日志输出。基本用法是:

bash 复制代码
docker logs [OPTIONS] CONTAINER

这里有一些常用的选项:

  • -f--follow: 跟踪日志输出(实时显示日志)。

  • --since: 显示自某个时间以来的日志(例如 --since 5m 显示过去5分钟的日志)。

  • --tail: 查看最新的N条日志(例如 --tail 100)。

  • --timestamps, -t: 显示时间戳。

例如,要实时查看名为 my_container 的容器日志,可以使用:

bash 复制代码
docker logs -f my_container

如果你只想查看最后100条日志,可以使用:

bash 复制代码
docker logs --tail 100 my_container

要查看过去5分钟的日志,可以使用:

bash 复制代码
docker logs --since 5m my_container

附加脚本:

1.使用shello脚本 将curl 请求的状态码,内容获取到,并写入到日志文件中

bash 复制代码
#!/bin/bash

# 设置日志文件名,格式为 YYYY-MM-DD-HHMMSS.log
LOG_FILE="curl_request_$(date +'%Y-%m-%d-%H%M%S').log"

# 定义要请求的 URL
URL="https://example.com"

# 发起 curl 请求,获取状态码和内容,并将结果追加写入日志文件
echo "========== $(date +'%Y-%m-%d %H:%M:%S') - Curl 请求信息 ==========" >> "$LOG_FILE"
echo "请求 URL: $URL" >> "$LOG_FILE"
echo "-------------------------------------------------------------" >> "$LOG_FILE"

# 发起 curl 请求,获取状态码和内容
response=$(curl -s -w "\nHTTP状态码: %{http_code}\n\n" -o - "$URL")

# 将 curl 请求的响应内容和状态码写入日志文件
echo "$response" >> "$LOG_FILE"

# 输出成功消息
echo "Curl 请求结果已写入日志文件: $LOG_FILE"

在这个脚本中:

  1. LOG_FILE 变量用于指定日志文件名,并且每次运行脚本时都会生成一个新的文件,包含当前的日期时间。
  2. URL 变量定义了您要请求的目标 URL。
  3. 使用 curl 命令发起请求,-s 参数表示静默模式,-w 参数定义了输出格式,-o - 表示将响应输出到标准输出。
  4. response 变量保存了 curl 命令的输出,包括请求的内容和状态码。
  5. 将请求信息、状态码和内容写入日志文件中,并在日志中分隔不同部分以便于阅读。

您可以根据实际需要修改 URL 变量来指定不同的请求目标。保存脚本并添加执行权限:

bash 复制代码
chmod +x curl_request_logger.sh

然后运行脚本即可:

bash 复制代码
./curl_request_logger.sh

它会将 curl 请求的状态码、内容以及请求的时间信息写入到指定的日志文件中。

5.查看 Docker 容器统计信息
bash 复制代码
docker stats -a --no-stream

docker stats -a --no-stream 是一个用于查看 Docker 容器统计信息的命令。这条命令的含义如下:

  • docker stats: Docker 命令用于显示容器的资源使用情况,如CPU、内存使用量等。

  • -a: 显示所有容器的统计信息,包括未运行的容器。如果不使用 -a 选项,docker stats 只会显示运行中 的容器的统计信息。

  • --no-stream: 表示不持续刷新统计信息。默认情况下,docker stats 会持续刷新显示最新的统计信息。加上 --no-stream 后,命令只会显示一次统计信息,然后立即退出。

这条命令可以在终端中直接运行,用于获取 Docker 容器的当前状态信息。

例如:

复制代码
复制代码

docker stats -a --no-stream

运行这条命令后,你会看到所有容器的实时资源使用情况,但之后命令会立即退出,不会持续更新。

相关推荐
研究司马懿10 分钟前
【云原生】MiniKube部署Kubernetes最小化集群
云原生·容器·kubernetes·minikube·k8s·kubelet·最小化集群
技术很渣22 分钟前
高级运维工程师讲述银河麒麟V10SP1服务器加固删除snmp服务引起keeplived莫名连带删除引起生产事故实战
运维·服务器·kylin
木子dn29 分钟前
docker部署简单的Kafka
docker·容器·kafka
超帅335 分钟前
开启 k8s 命令补全功能
云原生·容器·kubernetes
月清晖1 小时前
centos更换yum源、安装Docker和换源
linux·docker·centos
研究司马懿1 小时前
【云原生】Kubernetes-kubeadm升级版本
云原生·容器·kubernetes·升级kubeadm版本
【 教主 】2 小时前
<Linux> 多线程
linux·运维·服务器
超帅32 小时前
K8S 集群节点扩容
java·容器·kubernetes
Mark White3 小时前
软连接迁移 Docker 的默认安装(存储)目录
docker
杨江3 小时前
服务器上VMWare Workstation虚拟机声卡支持
运维·服务器