• docker 常用命令


    目录

    1.docker 给容器换名字

    2. docker 启动redis 镜像

    3.docker 启动MongoDB

    3.1使用 Docker CLI 搭建 MongoDB

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

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

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

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

    3.2 使用 Docker Compose 搭建 MongoDB

    3.3 docker 启动mongodb

    4.docker logs查看日志

    5.查看 Docker 容器统计信息

     6、docker ps --format "{{.Names}}" 输出的是数组还是字符串

    6.附加:docker 命令

    1.docker简介

    2.常用命令

    3.docker高级命令总结

    4.作用

    5、mac 怎么重启docker

    1).如何重启 Docker on Mac


    1.docker 给容器换名字

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

    命令格式如下:

    docker rename old_container_name new_container_name

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

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

    docker rename my_container my_new_container

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

    docker rename 容器id 新容器名

    修改前:

    输入命令行:

    修改后:

    启动容器:

    2. docker 启动redis 镜像
    docker run --name redis --network host -itd redis
    3.docker 启动MongoDB

    3.1使用 Docker CLI 搭建 MongoDB

    1. 运行 MongoDB 容器
    首先,我们使用以下命令来启动一个 MongoDB 容器:
    1. docker run -itd --name mongodb_comm -v $PWD
    2. /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:
    docker exec -it mongodb_comm mongo admin

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

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

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

    3. 连接测试
    为了验证是否成功,可以尝试使用以下命令进行连接测试:
    db.auth('root', '123456')
    4. 插入和查询数据
    作为测试,我们可以尝试插入一些数据,然后查询:
    1. db.user.insert({"name":"abc","age":18})
    2. db.user.find()

    3.2 使用 Docker Compose 搭建 MongoDB


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

    1. version: '3.1'
    2. services:
    3.   mongodb:
    4.     image: mongo:4.4
    5.     ports:
    6.       - "27017:27017"
    7.     volumes:
    8.       - ./data:/data/db
    9.     environment:
    10.       MONGO_INITDB_ROOT_USERNAME: root
    11.       MONGO_INITDB_ROOT_PASSWORD: 123456
    12.     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容器:

    docker run --name some-mongo -d mongo

    这里的参数解释如下:

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

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

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

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

    docker run --name some-mongo -v /my/own/datadir:/data/db -d mongo

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

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

    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 容器的日志输出。基本用法是:

    docker logs [OPTIONS] CONTAINER

    这里有一些常用的选项:

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

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

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

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

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

    docker logs -f my_container

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

    docker logs --tail 100 my_container

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

    docker logs --since 5m my_container

    附加脚本:

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

    1. #!/bin/bash
    2. # 设置日志文件名,格式为 YYYY-MM-DD-HHMMSS.log
    3. LOG_FILE="curl_request_$(date +'%Y-%m-%d-%H%M%S').log"
    4. # 定义要请求的 URL
    5. URL="https://example.com"
    6. # 发起 curl 请求,获取状态码和内容,并将结果追加写入日志文件
    7. echo "========== $(date +'%Y-%m-%d %H:%M:%S') - Curl 请求信息 ==========" >> "$LOG_FILE"
    8. echo "请求 URL: $URL" >> "$LOG_FILE"
    9. echo "-------------------------------------------------------------" >> "$LOG_FILE"
    10. # 发起 curl 请求,获取状态码和内容
    11. response=$(curl -s -w "\nHTTP状态码: %{http_code}\n\n" -o - "$URL")
    12. # 将 curl 请求的响应内容和状态码写入日志文件
    13. echo "$response" >> "$LOG_FILE"
    14. # 输出成功消息
    15. echo "Curl 请求结果已写入日志文件: $LOG_FILE"

    在这个脚本中:

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

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

    chmod +x curl_request_logger.sh

    然后运行脚本即可:

    ./curl_request_logger.sh

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

    5.查看 Docker 容器统计信息
    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

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

     6、docker ps --format "{{.Names}}" 输出的是数组还是字符串

    docker ps --format "{{.Names}}" 命令会输出当前运行的容器名称列表。这个列表是以字符串的形式输出的,每个容器名称以换行符分隔。

    如果你想要将这些名称作为数组处理,你可以在脚本语言中处理,例如在 Bash 或 Python 中。

    1. docker_names=$(docker ps --format '{{.Names}}')
    2. names_array=(${docker_names//$'\n'/ })
    3. # 现在你可以遍历 names_array 数组了
    4. for name in "${names_array[@]}"; do
    5. echo $name
    6. done
    Python实例
    1. import subprocess
    2. # 使用 subprocess.check_output 执行 docker 命令
    3. docker_names = subprocess.check_output(['docker', 'ps', '--format', "{{.Names}}"])
    4. # 将输出分割成字符串数组
    5. names_list = docker_names.decode('utf-8').strip().split('\n')
    6. # 现在你可以遍历 names_list 了
    7. for name in names_list:
    8. print(name)

    6.附加:docker 命令
    1.docker简介

    docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,简单来说。就是能轻松的为应用创建一个轻量级的、可移植的、自给自足的容器(类似虚拟机并且具有自己的优势)。

    2.常用命令
    1. docker pull ${CONTAINER NAME} #拉取镜像
    2. docker images #查看本地所有镜像
    3. docker ps #查看所有正在运行的容器,加-q返回id
    4. docker ps -a #查看所有容器,加-q返回id
    5. docker rmi ${IMAGE NAME/ID} #删除镜像
    6. docker rm ${CONTAINER NAME/ID} #删除容器
    7. docker save ${IMAGE NAME} > ${FILE NAME}.tar #将镜像保存成文件
    8. docker load < ${FILE NAME}.tar #从文件加载镜像
    9. docker start ${CONTAINER NAME/ID} #运行一个以前运行过的容器
    10. docker stop ${CONTAINER NAME/ID} #停止一个正在运行的容器
    11. docker logs ${CONTAINER NAME/ID} #显示运行容器的日志
    12. docker run… #运行一个容器
    13. –name ${container name} #设置容器名称
    14. -p h o s t p o r t : {host port}:hostport:{container port} #映射主机和容器内的端口
    15. -e e n v n a m e = {env name}=envname={env value} #添加环境变量
    16. -d #后台运行
    17. -v h o s t f o l d e r p a t h : {host folder path}:hostfolderpath:{container folder path} #将主机目录挂在到容器内

    3.docker高级命令总结
    1. Advance use
    2. docker ps -f “status=exited” #显示所有退出的容器
    3. docker ps -a -q #显示所有容器id
    4. docker ps -f “status=exited” -q #显示所有退出容器的id
    5. docker restart $(docker ps -q) #重启所有正在运行的容器
    6. docker stop $(docker ps -a -q) #停止所有容器
    7. docker rm $(docker ps -a -q) #删除所有容器
    8. docker rm $(docker ps -f “status=exited” -q) #删除所有退出的容器
    9. docker rm $(docker stop $(docker ps -a -q)) #停止并删除所有容器
    10. docker start $(docker ps -a -q) #启动所有容器
    11. docker rmi $(docker images -a -q) #删除所有镜像
    12. docker exec -it ${CONTAINER NAME/ID} /bin/bash #进入容器内
    13. docker exec -it ${CONTAINER NAME/ID} ping ${CONTAINER NAME/ID} #一个容器ping另外一个容器
    14. docker top ${CONTAINER NAME/ID} #显示一个容器的top信息
    15. docker stats #显示容器统计信息(正在运行)
    16. docker stats -a #显示所有容器的统计信息(包括没有运行的)
    17. docker stats -a --no-stream #显示所有容器的统计信息(包括没有运行的) ,只显示一次
    18. docker stats --no-stream | sort -k8 -h #统计容器信息并以使用流量作为倒序
    19. docker system
    20. docker system df #显示硬盘占用
    21. docker system events #显示容器的实时事件
    22. docker system info #显示系统信息
    23. docker system prune #清理文件
    4.作用

    解决运行环境不一致所导致的问题。这样就不会产生“本地运行没问题,可一到服务器上就不行了”的情况。
    限定最大的cpu使用内存硬盘,这样就起到了隔离的作用,避免产生“一块代码产生死循环,把磁盘占满了,其它程序也挂了”的情况。
    双11时扩展机器用。
                            
    参考:https://blog.csdn.net/m0_52824752/article/details/113486563

    5、mac 怎么重启docker
    1).如何重启 Docker on Mac

    在 macOS 上,Docker 是一个非常强大的容器化平台,可以帮助我们轻松地构建、部署和管理容器。然而,有时候我们可能需要重启 Docker 服务,以便更新配置或者解决问题。本文将介绍如何在 Mac 上重启 Docker。

    方法一:使用命令行
    首先,我们可以使用命令行来重启 Docker 服务。打开终端,并执行以下命令:

    sudo killall Docker && open /Applications/Docker.app

    上述命令首先会关闭正在运行的 Docker 服务,并重新打开 Docker 应用程序。这样,Docker 服务将会重新启动。

    方法二:使用 Docker Desktop
    如果你使用的是 Docker Desktop,可以通过以下步骤来重启 Docker 服务:

    在菜单栏上,点击 Docker 图标,选择 “Preferences”。

    在 Preferences 窗口中,切换到 “Docker Engine” 选项卡。

    点击 “Restart” 按钮。

    这样,Docker 服务将会重新启动。

    方法三:使用 Docker Compose
    如果你使用 Docker Compose 来管理容器,可以在命令行中执行以下命令来重启 Docker 服务:

    1. docker-compose down
    2. docker-compose up -d

    上述命令会先关闭当前正在运行的容器,并重新启动它们。

    注意事项
    在重启 Docker 服务之前,建议先保存你的工作,并确保所有容器已经停止或保存状态。重启 Docker 服务会导致当前正在运行的容器被停止和删除,所以请确保你的数据已经备份。

    总结
    本文介绍了三种在 Mac 上重启 Docker 服务的方法。通过使用命令行、Docker Desktop 或者 Docker Compose,你可以轻松地重启 Docker,并继续进行容器化开发和部署。

    饼状图示例:


    表格示例:



    https://blog.51cto.com/u_16175466/8846279

  • 相关阅读:
    docker和docker-compose生产的容器,不在同一个网段,解决方式
    Kotlin 协程之取消与异常处理探索之旅(下)
    【线性代数基础进阶】二次型
    Nginx入门--安装部署,修改端口
    基于JAVA图书馆座位预约系统计算机毕业设计源码+数据库+lw文档+系统+部署
    C++ move()排序函数用法详解(深入了解,一文学会)
    cmake入门
    今年的中秋(好惨啊)
    一个rar压缩包如何分成三个?
    leetcode 20. Valid Parentheses 有效的括号(中等)
  • 原文地址:https://blog.csdn.net/lxw1844912514/article/details/139674965