当前位置: 首页 > news >正文

Docker详细使用

Docker详细使用

文章目录

  • Docker详细使用
  • 使用场景
    • docker安装
    • 常用命令
      • 帮助启动类命令
      • 镜像命令
      • 网络命令
      • 容器命令
      • compose(服务编排)
  • 功能列表
    • 存储(挂载本地)
      • 介绍
      • 使用
        • ⽬录挂载
        • 卷映射
    • 网络
      • 介绍
      • 使用
    • Dockerfile
    • Compose
      • 介绍
      • 使用

使用场景

以下场景使用的命令如果不知参数什么意思可以在下面【功能列表】中查询

docker安装

https://docs.docker.com/engine/install/

常用命令

帮助启动类命令

说明命令
启动dockersystemctl start docker
停止dockersystemctl stop docker
重启dockersystemctl restart docker
查看docker状态systemctl status docker
开机启动systemctl enable docker
查看docker概要信息docker info
查看docker总体帮助文档docker --help
查看docker命令帮助文档docker 具体命令 --help

镜像命令

说明命令
列出本地主机上的镜像docker images
搜索镜像docker search {镜像名字}
下载镜像docker pull {镜像名字:版本}
删除镜像docker rmi -f {镜像ID}

网络命令

说明命令
查看网络docker network ls
查看网络源数据docker network inspect {网络名字}
删除网络docker network rm {网络名字}
创建网络(默认创建的是bridge模式)docker network create {网络名字}

容器命令

说明命令
列出当前所有正在运行的容器docker ps
列出当前所有的容器(包含历史)docker ps -a
新建+启动容器docker run(详细命令看下面)
启动已停止运行的容器docker start {容器ID或者容器名}
停止容器docker stop {容器ID或者容器名}
强制停止容器docker kill {容器ID或容器名}
重启容器docker restart {容器ID或者容器名}
删除已停止的容器docker rm {容器ID}
查看容器日志docker logs {容器ID}
查看容器内运行的进程docker top {容器ID}
查看容器内部细节docker inspect {容器ID}
进入正在运行的容器并以命令行交互docker exec -it {容器ID} /bin/b}ash
从容器内拷贝文件到主机上docker cp {容器ID:容器内路径} {主机路径}
从主机上拷贝文件到容器内docker cp {主机路径} {容器ID:容器内路径}

新建+启动容器

# -i:以交互模式运行容器,通常与 -t 同时使用;
# -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
# -d:后台执行
# -p:指定端口映射
# --network:网络名,必须是已存在的,如果不存在需要先创建网络(详细可参考下面网络章节)
# -v 卷映射,将容器数据映射到本地(详细可参考下面存储(挂载本地)章节)
# --name:容器名
docker run -it -d \
-p {对外端口:程序端口} \
-v {本地目录或卷目录:容器程序目录} \
--network {网络名} \
--name={容器新名字} \
{容器名}

# 例子
docker run -it -d \
-p 9789:80 \
-v /sensorsdata/main/packages/test/nocobase:/app/nocobase  \
--network my-bridge-network \
--name=ubp_dev_c140_new_name \
ubp_dev_140

compose(服务编排)

以下命令需要在【docker-compose.yml】文件目录下执行

说明命令
启动所有docker-compose服务并后台运行docker compose up -d
停止并删除容器、网络、卷、镜像docker compose down
进入容器实例内部docker compose exec {docker-compose.yml文件中写的服务id} /bin/bash
展示当前docker-compose编排过的运行的所有容器docker compose ps
展示当前docker-compose编排过的容器进程docker compose top
查看容器输出日志docker compose logs yml里面的服务id
检查配置docker compose config
检查配置,有问题才有输出docker compose config -q
重启服务docker compose restart
启动服务docker compose start
停止服务docker compose stop

功能列表

存储(挂载本地)

映射,容器内的数据备份+持久化到本地主机目录

介绍

  • 分为目录挂载卷映射
  • 相同点
    • 都是将容器里的目录挂载到本地目录
    • 当被挂载的本地目录存在时使用本地目录下的内容,如果本地目录不存在则自动创建目录
  • 不同点
    • 目录挂载:本地挂载目录不存时会自动创建,**不会**将容器的挂载目录内容拷贝到本地
    • 卷映射:本地挂载目录不存时会自动创建,****将容器的挂载目录内容拷贝到本地

使用

⽬录挂载
# -v :挂载
# 	将docker容器的【/usr/share/nginx/html】目录挂载到本地【/tmp/nghtml】目录
-v /tmp/nghtml:/usr/share/nginx/html
卷映射
# -v :挂载
# 	将docker容器的【/etc/nginx】目录卷映射到【ngconf】卷中
-v ngconf:/etc/nginx

# 查看docker所有的卷
docker volume ls

# 查看这个卷挂载的详细信息(卷名称、卷挂载的本地目录)
# 	{VOLUME NAME}:卷名
docker volume inspect {VOLUME NAME}

网络

介绍

作用

  • 容器间的互联和通信以及端口映射
  • 容器IP变动时候可以通过服务名直接网络通信而不受到影响

模式介绍

  • bridge模式:让主机和容器之间可以通过网桥相互通信
    • 使用–network bridge指定,默认使用docker0
  • host模式:直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行NAT 转换
    • 使用–network host指定
  • none模式:不为Docker容器进行任何网络配置
    • 使用–network none指定
  • container模式:新创建的容器不会创建自己的网卡,配置自己的IP
    • 使用–network container:NAME或者容器ID指定

使用

  • bridge模式:使用–network bridge
  • host模式:使用–network host
  • none模式:使用–network none
  • container模式:使用–network container:NAME或者容器ID

Dockerfile

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

https://docs.docker.com/reference/dockerfile/

Compose

https://docs.docker.com/reference/compose-file/

介绍

  • 实现对Docker容器集群的快速编排
  • Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)
  • 可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

使用

步骤

  • 编写docker-compose.yml文件
  • 启动并运行整个应用程序,完成一键部署上线: docker-compose up -d

相关文章:

  • Windows 系统如何使用Redis 服务
  • 什么是分布式声波传感
  • 性能炸裂的数据可视化分析工具:DataEase!
  • npm 常用命令及示例和解析
  • 位运算题目:连接连续二进制数字
  • python asyncio 的基本使用
  • HTTP 和 HTTPS 协议的区别及使用场景
  • Java微服务流量控制与保护技术全解析:负载均衡、线程隔离与三大限流算法
  • vue3 div 点击右键旁边出现弹窗 可做编辑删除 新增操作
  • 案例-索引对于并发Insert性能优化测试
  • 初阶数据结构--二叉树OJ训练
  • 渗透测试学习-概述
  • 搭载DeepSeek|暴雨AI教育一体机加速AI教育普及
  • # linux 设置宽容模式
  • onlyoffice 在线编辑集成
  • 【数据结构_8】栈和队列
  • Java基础——面试自我总结
  • Linux基础IO(七)之理解文件系统
  • 文心一言开发指南03——千帆大模型平台产品优势
  • 力扣每日打卡 3396. 使数组元素互不相同所需的最少操作次数(简单)
  • 五一出游火爆!热门线路抢票难度堪比春运,有热门目的地酒店价格涨近4倍
  • 普京签署法律,诋毁俄军将面临最高7年监禁
  • 湖南平江发生一起意外翻船事件,6人不幸溺亡
  • 美菲开始举行年度军演,外交部:菲公然站在地区国家的对立面
  • 上海农房翻建为何难?基层盼政策适度松动
  • 被指违反代理协议遭南航暂停售票资格,去哪儿网:今起恢复