不到断气不罢休 发表于 昨天 01:07

【docker学习条记】docker概念和下令

前言

最近感觉docker真的很方便,部署开源项目,下载设置什么情况都很方便,刷了会课学了docker,简单做个条记,方便查阅
废话不多说,正文开始
Docker 条记

docker重点概念



[*]Docker 镜像(Image):Docker 镜像是一个轻量级的、可执行的独立软件包,包含运行某个软件所需的所有内容,包括代码、运行时情况、库、情况变量和设置文件。
[*]Docker 容器(Container):容器是镜像的运行实例。它可以被启动、停止、暂停和删除。每个容器都是隔离的、安全的,并且是一个完整的操作系统平台。
[*]Dockerfile:Dockerfile 是一个文本文件,此中包含了一系列用户可以调用的下令,用于自动化创建 Docker 镜像。Dockerfile 中的下令包括复制文件、安装应用、袒露端口等。
[*]Docker 堆栈(Repository):Docker 堆栈是用于存储和分发 Docker 镜像的地方。可以是公开的也可以是私有的。Docker Hub 是 Docker 的公开堆栈,用户可以在上面发布和下载镜像。
[*]Docker Compose:Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,你可以利用 YAML 文件来设置应用程序的服务,然后利用一个下令来创建和启动所有服务。
[*]Docker Swarm:Docker Swarm 是 Docker 的原生集群管理和编排工具,用于创建和管理 Docker 集群。
[*]Docker 网络:Docker 网络答应你定义本身的网络和网络拓扑,使得容器可以相互通讯。
[*]Docker 卷(Volume):Docker 卷是长期化数据存储的最佳方式。卷完全由 Docker 管理,可以在容器之间共享和重用。
底子下令

镜像干系操作下令



[*]从云端拉取镜像 docker pull
[*]查看所有镜像 docker image
[*]删除镜像 docker rmi
[*]推送镜像 docker push
[*]打包镜像

[*]先编写dockerfile文件
[*]运行docker build
[*]此时可以通过docker save打包成压缩包,别人可以通过docker load来加载镜像
[*]一样平常情况都是利用docker push推送到云端,然后通过docker pull拉取

容器干系下令



[*] docker run -d -p 8080:80 --name my_container my_image

[*]这个下令会启动一个名为 my_container 的新容器,利用 my_image 镜像,将容器的 80 端口映射到主机的 8080 端口,并在背景运行

[*]-d 或 --detach:在背景运行容器,并返回容器 ID
[*]-i 或 --interactive:以交互模式运行容器,通常与 -t 一起利用
[*]-t 或 --tty:为容器重新分配一个伪输入终端,通常与 -i 一起利用
[*]--name:为容器指定一个名称
[*]-p 或 --publish:将容器的端口映射到主机上。格式为 <host-port>:<container-port>
[*]-P 或 --publish-all:将容器的端口所有映射到主机上
[*]-v 或 --volume:挂载主机上的一个数据卷到容器内。格式为 <host-dir>:<container-dir>
[*]-e 或 --env:设置情况变量。格式为 <key>=<value>
[*]--rm:容器退出时自动删除容器
[*]--restart:设置容器的重启策略。可选的值有 no、on-failure、always、unless-stopped


[*] docker stop用来停止运行中的容器

[*]docker stop my_container
[*]这个下令会停止名为 my_container 的容器
[*]<container>: 容器的 ID 或名称。你可以指定一个或多个容器来停止它们
[*]-t 或 --time: 在发送 SIGKILL 信号前等待容器停止的秒数。默认是 10 秒

[*] docker start 用于启动一个或多个已停止的 Docker 容器

[*]docker start my_container
[*]这个下令会启动名为 my_container 的容器
[*]<container>: 容器的 ID 或名称。你可以指定一个或多个容器来启动它们
[*]-a 或 --attach: 附加 STDOUT/STDERR 并转发信号
[*]-i 或 --interactive: 附加容器的 STDIN

[*] docker ps 用于列出当前正在运行的 Docker 容器

[*]-a 或 --all: 显示所有的容器(包括已经停止的)
[*]-q 或 --quiet: 只显示容器的编号
[*]-s 或 --size: 显示总文件大小
[*]--no-trunc: 不截断输出
[*]-f 或 --filter: 根据条件过滤输出

[*] docker rm 用于删除一个或多个 Docker 容器

[*]<container>: 容器的 ID 或名称。你可以指定一个或多个容器来删除它们
[*]-f 或 --force: 强制删除一个正在运行的容器
[*]-v 或 --volumes: 删除与容器关联的卷

[*] docker logs 用于获取 Docker 容器的日志

[*]<container>: 容器的 ID 或名称。你需要指定一个容器来获取它的日志
[*]--follow 或 -f: 跟踪实时日志
[*]--tail : 显示末了 N 行日志
[*]--since : 显示自某个时间点以来的日志
[*]--timestamps 或 -t: 在日志中显示时间戳

[*] docker exec用于进入在运行的 Docker 容器内部

[*]<container>: 容器的 ID 或名称,你需要指定一个容器来在此中执行下令
[*]-d 或 --detach: 在背景运行
[*]-i 或 --interactive: 保持 STDIN 开启,纵然没有附加
[*]-t 或 --tty: 分配一个伪终端

[*] docker inspect 查看容器详情
数据卷的概念



[*]Docker 数据卷(Docker Volume)是 Docker 提供的一种数据长期化的解决方案。数据卷是在 Docker 主机上创建的特殊目次,可以被 Docker 容器挂载并利用。数据卷可以在容器之间共享和重用,而且对数据卷的修改会立即生效,无论是在容器内照旧在 Docker 主机上。
[*]Docker 数据卷的告急特点包括:
[*]数据长期化:纵然容器被删除,卷中的数据也会保留下来。这对于掩护你的数据非常告急,因为 Docker 容器的文件系统是暂时的,当容器被删除时,所有未保存在数据卷中的数据都会丢失。
[*]数据共享:数据卷可以在多个容器之间共享和重用。比方,你可以创建一个包含数据文件的数据卷,然后将其挂载到多个容器中。
[*]数据迁移:数据卷可以帮助你在差别的 Docker 主机之间迁移数据。你可以通过备份、恢复或者迁移数据卷来实现这一点。
[*]性能优化:数据卷在 Docker 主机上的性能通常比容器的文件系统更好。因此,对于 I/O 敏感的应用,利用数据卷可以进步性能。
[*]与主机系统隔离:数据卷在 Docker 主机上是以一个特殊的目次存在的,这个目次是直接由 Docker 管理的,而不是挂载到 Docker 主机的文件系统中。如许可以进步数据的安全性和隔离性。

数据卷操作



[*]docker volume create 创建数据卷
[*]docker volume ls 查看所有数据卷
[*]docker volume rm 删除指定数据卷
[*]docker volume inspect 查看某个数据卷的详情
[*]docker volume prune 打扫无用数据卷
docker网络互连

docker 默认创建虚拟网桥172.17.0.1/16 ,容器启动的时间会自动加入网桥并分配虚拟ip,使得可以相互访问,但是因为随机分配所以不固定,需要自建自定义网络来实现互联

网络底子下令



[*]docker network create 创建一个网络
[*]docker network ls 查看所有网络
[*]docker network rm 删除指定网络
[*]docker network prune 打扫未利用的网络
[*]docker network connect 使指定容器链接加入到某网络
[*]docker network disconnect使指定容器离开某网络
[*]docker network inspect 查看网络详细信息

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【docker学习条记】docker概念和下令