产品网站建设公司,百度用户服务中心官网电话,网站建设个网站一般需要花多少钱,常州市建设工程网站在Linux中使用docker【中】#xff08;常见命令上#xff09; 一、Docker介绍二、在Linux中使用Docker的意义2.1 轻量级与资源高效2.2 快速部署与版本控制2.3 隔离与安全2.4 简化运维2.5 跨平台兼容2.6 持续集成与持续部署#xff08;CI/CD#xff09; 三、Docker的安装3.1… 在Linux中使用docker【中】常见命令上 一、Docker介绍二、在Linux中使用Docker的意义2.1 轻量级与资源高效2.2 快速部署与版本控制2.3 隔离与安全2.4 简化运维2.5 跨平台兼容2.6 持续集成与持续部署CI/CD 三、Docker的安装3.1 ubuntu下安装docker3.2 ubuntu下安装nvidia-docker3.3 centos下安装docker3.4 centos下安装nvidia-docker 三、Docker常见命令3.1 验证状态【version、info、hello-world】3.2 查找镜像库【search】3.3 下载镜像【pull】3.4 创建容器【run】3.5 启动、停止和重启容器【start、stop、restart】3.6 列出容器【ps】3.7 进入容器【attach、exec】3.7.1 attach3.7.2 exec3.7.3 attach和exec区别 在Linux中使用docker【上】docker、nvidia-docker安装 在Linux中使用docker【中】常见命令上 在Linux中使用docker【下】常见命令下
一、Docker介绍 Docker是一个强大的工具神器它使得应用程序的打包、部署和管理变得更加简单、高效和安全。无论是在开发、测试还是生产环境中都发挥着重要的作用。 Docker是开源的应用容器引擎它基于Go语言实现并依赖于操作系统的机制和特性。Docker的主要目的是让开发者能够打包他们的应用及其依赖包到一个可移植的容器中然后发布到任何流行的Linux或Windows操作系统的机器上实现轻量级虚拟化。这种容器化的应用程序被称为Docker容器它们通过Docker镜像创建而这些镜像文件可以存放在私有仓库或共有仓库中。 Docker采用了“写时复制”copy-on-write模型使得修改应用程序变得非常迅速。此外Docker还支持面向服务的体系结构和微服务架构提高应用程序的模块化和可维护性。 Docker由PaaS提供商dotCloud开发作为开源项目发布。它的源代码托管在Github上并遵从Apache2.0协议。
二、在Linux中使用Docker的意义
2.1 轻量级与资源高效
2.2 快速部署与版本控制
2.3 隔离与安全
2.4 简化运维
2.5 跨平台兼容
2.6 持续集成与持续部署CI/CD
三、Docker的安装
3.1 ubuntu下安装docker
3.2 ubuntu下安装nvidia-docker
3.3 centos下安装docker
3.4 centos下安装nvidia-docker
三、Docker常见命令
nvidia-docker命令就是将docker更换为nvidia-docker
3.1 验证状态【version、info、hello-world】
验证Docker、nvidia-docker是否安装成功可以使用以下命令 docker version 此命令会显示Docker的版本信息。如果Docker已正确安装它会输出Docker的版本号以及其他相关信息。
sudo docker versiondocker info 这个命令提供了Docker系统的详细信息包括容器、镜像、存储驱动、网络配置等。
sudo docker infodocker -v 或 docker --version 这两个命令都可以用来检查Docker是否已安装并显示Docker的版本号。
sudo docker -v
sudo docker --versiondocker run hello-world 这个命令会尝试从Docker Hub拉取一个名为“hello-world”的镜像并在容器中运行它。 如果Docker已正确安装并运行它会输出一条“Hello from Docker!”的消息。
sudo docker run hello-world# 执行结果
Hello from Docker!
This message shows that your installation appears to be working correctly.
......3.2 查找镜像库【search】
docker search 命令用于从 Docker Hub 查找镜像。允许根据关键字搜索镜像并通过各种选项来过滤和格式化输出结果。
以下是一些常用的选项和说明
TERM要搜索的镜像名称或描述中的关键字。--automated只列出自动构建类型的镜像已弃用。--filter, -f基于给定条件过滤输出。可以使用的过滤器包括 stars星星数is-official是否官方镜像等。--format使用模板格式化显示输出。--limit限制搜索结果的数量。默认值为 25。--no-trunc禁止截断输出显示完整的镜像描述等信息。
示例命令
搜索镜像名中包含 busybox 的镜像
sudo docker search busybox搜索星数不小于 3 的 busybox 镜像并且描述不截断
sudo docker search --filterstars3 --no-trunc busybox限制搜索输出个数为 5 个
sudo docker search --limit5 redis搜索官方的 nginx 镜像
sudo docker search nginx --filter is-officialtrue搜索星数大于 50 的 nginx 镜像
sudo docker search nginx --filterstars50docker search 命令的输出将包含以下列
NAME镜像的名称。DESCRIPTION镜像的描述。OFFICIAL是否官方镜像。stars镜像的收藏数星星数。AUTOMATED是否为自动构建类型的镜像已弃用。
3.3 下载镜像【pull】
docker pull命令是用于从镜像仓库中拉取或更新镜像的命令。
dcoker pull命令的基本语法是
docker pull [OPTIONS] NAME[:TAG|DIGEST]这里的参数说明如下
NAME指定要拉取的镜像的名称。TAG指定镜像的标签。如果不写则默认使用latest标签表示拉取该镜像的最新版本。DIGEST使用镜像的摘要来指定一个具体的镜像版本。
例如要拉取名为ubuntu的镜像的最新版本你可以执行
sudo docker pull ubuntu要拉取一个特定的标签版本如ubuntu的18.04版本你可以执行
sudo docker pull ubuntu:18.04拉取镜像时Docker会检查本地是否存在该镜像及其标签如果不存在则会从配置的镜像仓库中下载。下载过程中你可以看到相关的进度信息。下载完成后该镜像就可以被用来创建和运行容器以构建和部署应用程序。
需要注意的是docker pull命令默认只会拉取一个镜像。如果你想要拉取一个镜像的所有标签版本你可以使用-a或--all-tags参数。例如
sudo docker pull -a ubuntu这将会拉取ubuntu镜像的所有可用标签版本。
3.4 创建容器【run】
docker run 命令是 Docker 中用于创建并启动一个容器的命令。
当运行这个命令时Docker 会做以下几件事情 创建容器基于指定的镜像如果不存在Docker 会尝试从配置的镜像仓库中拉取创建一个新的容器实例。 分配资源为容器分配必要的系统资源如 CPU、内存、网络端口等。 执行命令在容器内部执行指定的命令。如果不指定命令通常会执行容器镜像中定义的默认命令。 提供输入输出将容器的标准输入、输出和错误流连接到宿主机的对应流上以便你可以与容器进行交互。
docker run 命令的基本语法如下
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]其中
OPTIONS用于配置容器运行时的各种选项如 -d后台运行、-p端口映射、-v卷挂载等。IMAGE指定要创建容器的镜像名称或ID。COMMAND容器启动后要执行的命令。ARG...传递给命令的参数。
以下是一些常见的 docker run 参数及其简要说明 -d, --detachfalse: 在后台运行容器并返回容器ID。 –name“”: 为容器指定一个名称。 –dns[]: 设置容器的DNS服务器。 -e, --env[]: 设置环境变量。例如-e DEBUGfalse。 -m, --memory“”: 设置容器的内存上限。 –net“bridge”: 指定容器使用的网络模式如 bridge、host、none 或自定义的网络。 –expose[]: 开放一个端口或一组端口但不映射到宿主机。 -p, --publish[]: 公开容器的某个端口到宿主机例如-p 8080:80。 -h, --hostname“”: 指定容器的主机名。 -v, --volume[]: 给容器挂载存储卷例如-v /host/dir:/container/dir。 –volumes-from[]: 从另一个容器挂载其卷。 –cap-add[]: 添加Linux功能。 –cap-drop[]: 移除Linux功能。 -w, --workdir“”: 设置容器的工作目录。 –label[]: 设置容器标签。
例如以下命令将在后台启动一个基于 nginx 镜像的容器名为nginxdemo并将容器的 80 端口映射到宿主机的 8080 端口
sudo docker run -d --namenginxdemo -p 8080:80 nginx3.5 启动、停止和重启容器【start、stop、restart】
使用 docker start、docker stop 和 docker restart 命令来启动、关闭和重启容器。
以下是这些命令的示例
启动容器
# 根据容器ID启动
sudo docker start container_id# 根据容器名称启动
sudo docker start container_name# 启动所有容器
sudo docker start $(docker ps -a -q)关闭容器
# 根据容器ID关闭
sudo docker stop container_id# 根据容器名称关闭
sudo docker stop container_name# 关闭所有容器
sudo docker stop $(docker ps -a -q)重启容器
# 根据容器ID重启
sudo docker restart container_id
# 根据容器ID等待10秒后重启
sudo docker restart -t 10 container_id# 根据容器名称重启
sudo docker restart container_name
# 根据容器名称等待10秒后重启
sudo docker restart -t 10 container_name# 重启所有容器
sudo docker restart $(docker ps -a -q)3.6 列出容器【ps】
docker ps 命令用于列出当前正在运行的 Docker 容器。这个命令有一些可选的参数用于筛选和格式化输出。
以下是一些 docker ps 命令的参数示例
列出所有容器包括未运行的
sudo docker ps -a根据条件筛选容器
# 筛选名称为 mycontainer 的容器
sudo docker ps -f namemycontainer# 筛选处于特定状态的容器例如running, stopped, exited 等
sudo docker ps -f statusstatus# 使用正则表达式列出名称符合特定模式的容器
sudo docker ps -f namepattern格式化输出
sudo docker ps --format {{.ID}}: {{.Image}}: {{.Status}}显示最近创建的 N 个容器
sudo docker ps -n 3显示容器大小
sudo docker ps -s不截断输出
sudo docker ps --no-trunc3.7 进入容器【attach、exec】
3.7.1 attach
docker attach命令用于将当前的终端连接到正在运行的Docker容器的标准输入、输出和错误流上。
使用该命令可以在终端中查看容器的输出和执行命令。此命令的基本语法如下
docker attach [OPTIONS] CONTAINER其中OPTIONS是可选的选项可以用于指定命令的行为。CONTAINER是要连接到的Docker容器的名称或ID。
下面是一些常用的选项
--no-stdin不连接标准输入流--sig-proxy将信号传递给容器
**示例1**连接到一个正在运行的容器
假设有一个名为web的容器正在运行连接到它并查看它的输出。可以使用以下命令
sudo docker attach web**示例2**在连接到容器后执行一个命令
在连接到容器后执行一个命令。可以使用以下命令
sudo docker attach -t CONTAINER COMMAND其中-t选项用于为容器分配一个伪终端。
例如以下命令将在连接到web容器后执行一个ls命令
sudo docker attach -t web ls**示例3**从容器中分离
从连接的容器中分离可以使用命令exit也可以使用键盘快捷键Ctrl-p和Ctrl-q。
3.7.2 exec
docker exec命令用于在正在运行的Docker容器中执行命令。
使用该命令可以在不进入容器的情况下在容器内部执行一些命令。此命令的基本语法如下
sudo docker exec [OPTIONS] CONTAINER COMMAND [ARG...]其中OPTIONS是可选的选项可以用于指定命令的行为。CONTAINER是要执行命令的Docker容器的名称或ID。COMMAND是要在容器中执行的命令ARG是传递给该命令的参数。
下面是一些常用的选项
-i以交互模式运行容器-t为容器分配一个伪终端--user指定要在容器中运行命令的用户名或UID-d在后台运行容器并输出容器ID--env指定环境变量
**示例1**在容器中运行一个命令
假设我们有一个名为web的容器正在运行我们想在其中运行一个ls命令以列出容器中的文件和目录。可以使用以下命令
sudo docker exec web ls**示例2**在容器中运行一个交互式命令
在容器中运行一个交互式命令例如一个shell。可以使用-i和-t选项来启动一个交互式会话。
例如以下命令将在web容器中启动一个bash shell【最常用的容器进入命令之一】
sudo docker exec -it web /bin/bash**示例3**在容器中运行一个命令并指定用户
假设我们需要在web容器中运行一个命令但需要使用特定的用户身份运行该命令。可以使用--user选项来指定要使用的用户。
例如以下命令将在web容器中以www-data用户身份运行ls命令
sudo docker exec --user www-data web ls3.7.3 attach和exec区别
使用 attach进入容器不会启动新的终端 退出容器时会导致容器的停止。使用 exec 进入容器开启一个新的bash终端退出此bash终端时不会导致容器停止。 未完待续… may the odds be ever in your favor ~