docker run后台启动命令_Docker-第五部分:15个 Docker 命令

01c9abcb3a37b4011c38772eb0f9af6c.png
原文作者:Jeff Hale
原文地址:https://towardsdatascience.com/15-docker-commands-you-should-know-970ea5203421
翻译:付新圆

在这篇文章中,我们将学习15个Dockers CLI命令。如果你还不了解Docker,请查看这个系列的其他部分进行学习,Docker概念,生态系统,Dockerfile,Docker映像。

Docker 命令约有十亿个(给或接受十亿个)。Docker 文档范围很广泛,但当您刚入门时,文档会非常庞大让你不知所措。在这篇文章中,我将重点介绍运行Docker的关键命令。

0293b2582d57ffec06ef368405f65b8c.png
水果主题

之前的文章我们都把文章的主题隐喻成食物,这里让我们使用水果主题。蔬菜在关于减肥的文章中提供了营养。现在,美味的水果将为我们提供营养,因为我们学习的是关键 Docker 命令。

概述

回想一下,Docker 映像是由 Dockerfile +任何必要的依赖项组成的,还要记得 Docker 容器是一个 Docker 映像。若要使用 Docker 命令,首先需要知道您处理的是映像还是容器。

  • Docker 映像要么存在,要么不存在;
  • Docker 容器要么存在,要么不存在;
  • 存在的 Docker 容器要么正在运行,要么未运行。

当您知道正在处理什么,就可以找到适合该工作的命令。

共同点

以下是关于Docker命令需要了解的一些信息:

  • Docker CLI 管理命令从Docker开始,然后是空间,然后是管理类别,然后是空间,然后是命令。例如,dockerdocker container stop 停止一个容器。
  • 引用特定容器或图像的命令需要该容器或映像的名称或 ID。

例如, docker container run my_app 是生成和运行名为 "my_app"的命令。在整个示例中,我将使用 my_container 这个名称来表示泛型容器, my_image, my_tag等等也一样。

如果适用,我将单独提供命令,然后使用公共标志。前面有两个破折号的标记是该标志的全名。具有一个破折号的标记是完整标志名称的快捷方式。例如,

-p--port缩写的标志。

f856aa19a492191c641a544e15ee176c.png
标志提供命令选项

目标是将这些命令和标志留在您的记忆中,并作为本指南的参考。本指南适用于Linux和Docker Engine 18.09.1版和API 1.39版。

首先,我们将查看容器的命令,然后再查看图像的命令。下一篇文章将介绍卷。下面是15个命令的列表 – 加上3个附加命令!

容器

使用 docker container my_command

create — 从图像创建容器

start — 启动现有容器

run — 创建新容器并启动它

ls — 列出正在运行的容器

inspect — 查看有关容器的大量信息

logs — 打印日志

stop — 优雅地停止运行容器

kill —突然停止容器中的主进程

rm—删除已停止的容器

图像

使用 docker image my_command

build — 生成映像

push — 将映像推送到远程注册表

ls — 列出图像

history — 请参阅中间图像信息

inspect — 查看大量有关图像的信息,包括图层

rm — 删除图像

其他

docker version — 列出有关 Docker 客户端和服务器版本的信息

docker login — 登录到 Docker 注册表

docker system prune — 删除所有未使用的容器、未使用的网络和悬空图像

容器

容器开始

在日常生活中,术语create、start和run都有相似的语义。但每个命令都是一个单独的 Docker 命令,用于创建和/或启动一个容器。让我们先看看创建一个容器。

docker container create my_repo/my_image:my_tag-从图像创建容器。

我将缩短my_repo/my_image:my_tagmy_image文章的其余部分。

有很多可能的标记,你可以传递给create

docker container create -a STDIN my_image

-a--attach的简短。将容器连接到 STDIN、STDOUT 或 STDERR。

现在,我们已经创建了一个容器,让我们开始它。

docker container start my_container-启动现有容器。

请注意,容器可以通过容器的 ID 或容器的名称引用。

docker container start my_container

0ffbe0f3bb456e1b9612d7b2616fb7cb.png
开始

现在您已经知道如何创建和启动容器了,让我们来谈谈最常见的 Docker 命令。它将 create

start合并为一个命令: run

docker container run my_image -创建新容器并启动它。它也有很多选择,让我们看看几个。

docker container run -i -t -p 1000:8000 --rm my_image

-i--interactive 的缩写。即使未连接,也要保持 STDIN 打开。

-t--tty 的缩写。分配一个伪终端,将终端与集装箱的STDIN和STDOUT连接。

您需要同时指定 -i-t,然后通过终端外壳与容器进行交互。

-p--port 的缩写。端口是与外部世界的接口。1000:8000 将Docker端口8000映射到计算机上的端口1000。如果你有一个应用程序可以将某些内容输出到浏览器中,那么你可以将浏览器导航到本地主机localhost:1000 并看到它。

--rm当容器停止运行时,自动删除该容器。

让我们看一些更多的例子。run

docker container run -it my_image my_command

sh是可以在运行时指定的命令。sh 将在容器内启动 shell 会话,您可以通过终端与之交互。 对于Alpine图像,shbash更好,因为Alpine映像没有安装bash。键入 exit结束交互式shell会话。

请注意,我们将-i-t 合并到 -it中。

docker container run -d my_image

-d--detach的缩写。在后台运行容,。允许您在容器运行时将终端用于其他命令。

检查容器状态

如果您正在运行 Docker 容器,并且想要了解要与哪个容器交互,则需要列出它们。

docker container ls-列出正在运行的容器,还提供有关容器的有用信息。

docker container ls -a -s

-a-all 的缩写,列出所有容器(不只是正在运行的容器)。

-s--size 的缩写,列出每个容器的大小。

docker container inspect my_container-查看有关容器的大量信息。

docker container logs my_container-打印容器的日志。

4138992fb40f26328889371637fb08e1.png
日志。不确定虚拟日志的关联性,也许通过大量的纸张?

容器结束

有时需要停止正在运行的容器。

docker container stop my_container-正常停止一个或多个正在运行的容器。在容器关闭前给出10 秒的默认值,以完成任何进程。

或者,如果您不耐烦:

docker container kill my_container-突然停止一个或多个正在运行的容器。就像扒掉电视插头一样。在大多数情况下,stop是最好的选择。

docker container kill $(docker ps -q)-关闭所有正在运行的容器。

13985bbff46427380c66196eb5f59c16.png
杀死的蟑螂

然后删除容器,包括:

docker container rm my_container-删除一个或多个容器。

docker container rm $(docker ps -a -q)-删除所有未运行的容器。

这些就是 Docker 容器的八个基本命令。

回顾一下,首先创建一个容器,然后,启动容器;或将这些步骤与docker run my_container 结合。然后,你的应用将运行。

然后,使用docker stop my_container停止容器;最终使用docker rm my_container删除容器。

现在,让我们来看看制造称为图像的模具的神奇容器。

图像

下面是用于处理 Docker 映像的七个命令。

开发图像

docker image build -t my_repo/my_image:my_tag .-从位于指定路径或URL的Dockerfile构建名为my_image的Docker映像。

-t是标记的简短。告诉 Docker 使用提供的标记来标记图像。在my_tag这种情况下。

.命令末尾的 (期间) 告诉 Docker 在当前工作目录中根据 Dockerfile 生成映像。

569152cb854d6c272a162e925344baf5.png
构建它

构建映像后,您需要把它推到远程注册表,以便使它被共享并根据需要被拉取。假设您要使用Docker Hub,请转到浏览器中并创建一个帐户。它是免费的。

下一个命令不是图像命令,但在这里查看很有用,所以我要提一下。

docker login-登录到 Docker 注册表,提示时输入用户名和密码。

ddd8531e6e55dc201026e41249fd0e0e.png

docker image push my_repo/my_image:my_tag-将映像推送到注册表。

一旦有一些图像,你可能检查他们。

检查图像

2855636b94fc3a80acf5e52248cbceef.png
检查时间

docker image ls-列出您的图像。显示每个图像的大小。

docker image history my_image-显示图像的中间图像其大小及创建方式。

docker image inspect my_image-显示大量有关图像的详细信息,包括组成图像的图层。

有时您需要清理图像。

删除图像

docker image rm my_image-删除指定的图像。如果映像存储在远程存储库中,则该映像仍将在那里可用。

docker image rm $(docker images -a -q)-删除所有图像。请注意,已推送到远程注册表的图像将保留,这是注册表的好处之一。

以上讲述了大多数必不可少的 Docker 映像相关命令。我们将在下一篇文章中介绍与数据相关的命令。

efafbb15cac51e5db5002c7128a04159.png
命令就像水果, 营养丰富, 美味可口。

其他

docker version-列出有关 Docker 客户端和服务器版本的信息。

docker login-登录 Docker 注册表。提示时输入用户名和密码。

docker system prune出现在下一篇文章中。Twitter 和 Reddit 上的读者认为,加入这个列表是件好事。

docker system prune-删除所有未使用的容器、未使用的网络和悬空图像。

docker system prune -a --volumes

-a--all 的缩写。删除未使用的图像,而不仅仅是悬空的图像。

--volumes删除未使用的卷。我们将在下一篇文章中讨论更多有关卷的文章。

管理命令

在 CLI 1.13 Docker 中引入了按逻辑分组并一致命名的管理命令名称。旧命令仍然有效,但新命令使使用 Docker 更容易。本文的原始版本列出了旧名称。我更新了文章,根据读者建议使用管理命令名称。请注意,此更改仅引入两个命令名称更改 - 在大多数情况下,它只是意味向命令添加containerimage。这里是命令的映射。

如果您刚刚开始使用 Docker,以下是三个最重要的命令:

docker container run my_image-创建新容器并启动它。你可能想要一些标志在这里。

docker image build -t my_repo/my_image:my_tag .-生成映像。

docker image push my_repo/my_image:my_tag-将映像推送到远程注册表。

下面是基本 Docker 命令的较大列表:

容器

使用docker container my_command

create-从图像创建容器

start-启动现有容器

run-创建新容器并启动它

ls-列出正在运行的容器

inspect-查看有关容器的大量信息

logs-打印日志

stop-优雅地停止运行容器

kill-突然停止容器中的主要过程

rm-删除已停止的容器

图像

使用docker image my_command

build -生成映像。

push-将映像推送到远程注册表

ls-列出图像

history-请参阅中间图像信息

inspect-查看大量有关图像的信息,包括图层

rm-删除图像

其他

docker version-列出有关 Docker 客户端和服务器版本的信息

docker login-登录到 Docker 注册表

docker system prune -删除所有未使用的容器、未使用的网络和悬空图像。

若要在使用 Docker 时查看 CLI 引用,只需在命令行中输入命令。

现在,您就可以使用 Docker 构建东西了!

如果您错过了本系列的早期文章,请查看它们。第一个是:《Docker-第1部分:什么是Docker?》

希望这些文章对您有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ospf 环回口的路由条目_路由策略之重分发示例分析

重分发示例网络拓扑解析:如图,R1-R2运行OSPF10,通过各自F0/0口建立ospf邻居,R1上静态路由:ip route 192.168.11.0 255.255.255.0 13.1.1.2ip route 192.168.13.0 255.255.255.0 13.1.1.2然后在ospf10进程下&#xff0c…

我国常用的投影坐标系_我国常用坐标系和高程系详解

北京54坐标系(BJZ54)北京54坐标系为参心大地坐标系,大地上的一点可用经度L54、纬度M54和大地高H54定位,它是以克拉索夫斯基椭球为基础,经局部平差后产生的坐标系。新中国成立以后,我国大地测量进入了全面发展时期,再全…

miniconda3 安装numpy_OpenCV4在Ubuntu1810/1604安装

本文简要介绍OpenCV4在Ubuntu 1810上的安装。目前OpenCV最新的稳定版本是4.0.1,可以从官网下载并解压,也可以从github上获取最新源码进行安装安装依赖sudo apt-get install cmake build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg…

载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用

《0.6/1KV聚氯乙烯绝缘电力电缆载流量》《1~3芯额定电压0.6/1kv-1.8/3kv电缆载流量表》《YJV、YJY、YJV22额定电压在6/6、6/10kv电缆载流量》《常见BVVB型、BLVVB型、RVVB型电线载流量》《常见BV线载流量》《矿物质绝缘电缆载流量表》载流量数据表,是我们在日常工作…

android 虚拟键盘改变单个按键颜色_这款机械键盘很特别!一亿次按键寿命还有高颜值...

电脑主机要上RGB,那外设自然不能落下,虽说没有60%性能加成,用炫酷的灯光点亮桌面的感觉也是不错的。德国老牌外设品牌——冰豹(ROCCAT)2018年发布了Vulcan系列机械键盘,凭借着独特的设计和AIMO智能灯效颇受玩家好评。现在&#xf…

C++设计模式 #6 桥模式(Bridge)

动机 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个变化的维度。 如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度 举个栗子 我们…

c99什么意思_C语言中-是什么意思啊?

展开全部->是一个整体,它是用于指向结构体、C中的class等含有子数据的指针用e5a48de588b662616964757a686964616f31333366303130来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么…

mysql外键关联查询_MySQL外键约束和多表联查

一.创建外键#测试数据表# 教师表,主表CREATE TABLE teacher(id INT PRIMARY KEY AUTO_INCREMENT,name varchar(20),age INT)ENGINEInnoDB DEFAULT CHARSETUTF8;#测试数据:INSERT INTO teacher values(1,范冰冰,22),(2,周杰棍,30),(3,双杰伦,35),(4,梁朝伟…

mysql innodb id_MySQL InnoDB row_id边界溢出验证的方法步骤

背景跟同学聊到row_id一个边界问题,这里详细说明下。InnoDB表若没有定义主键,会使用系统的一个默认递增row_id (dict_sys->row_id)作为主键。每次插入一行加1,到达最大值循环复用。需要注意的是,虽然dict_sys->row_id 被定义…

mysql mysqld.sock_MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别。1、安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示:ERROR 2002 (HY000): Cant connect to local MySQL server throu…

plan explorer mysql_plan explorer支持oracle吗

展开全部1.SQL语句的执行62616964757a686964616fe58685e5aeb931333361326365计划使用EXPLAIN PLAN语句来确定Oracle数据库下指定SQL语句的执行计划,这个语句插入每一步执行计划的行描述到指定表中。你也可使用EXPLAIN PLAN语句作为SQL跟踪工具的一部分。EXPLAIN PLA…

python 列表转图结构_Python读取网络(图)边列表数据进而转化为邻接矩阵

import networkx as nxG nx.Graph()path ./edge_list.txtedge_list []node_set set() #集合的特性就是元素不会重复,互异的with open(path, r) as f:for line in f:cols line.strip().split( )y1int(cols[0])y2int(cols[1])node_set.add(y1)node_set.add(y2)ed…

r语言读写word_R语言:在word中插入ggplot

最近CRAN上新了一个叫eoffice的package,并且不时被各路大佬提起。这个包的功能刚好也符合我最近的需求,这次带各位先来试试水。包的官方介绍:1. Introduction​cran.r-project.org这次主要试试在word中用该包插入ggplot。既然要试&#xff0c…

hamburger组件_一个侧边栏导航组件实现思路

翻译:布兰作者:Adam Argyle来源:https://web.dev/building-a-sidenav-component/在这篇文章中,我想和大家分享我是如何为 web 原型化一个 Sidenav 组件的,这个组件是响应式的,有状态的,支持键盘…

centos php mysql 5.6 安装_centos7安装nginx、php5.5、mysql5.6

一、nginx1、安装yum install nginx2、启动systemctl start nginx关闭:systemctl stop nginx 重启:systemctl restart nginx 检查状态:systemctl status nginx3、测试浏览器直接访问http://ip,应该会看到以下界面:4、支持php打开/…

myeclipse怎么导入mysql驱动_myeclipse sql导入数据库驱动包

如何配置strutshibernate,基本使用方法不少童鞋在自学SSH框架的时候,难在创建第一个项目,如何搭建好这些框架,很多书上只是给出了代码但是没有教如何使用,所以在本次博客中将会图文结合来说一下如何使用struts结合hibe…

创建或更改表 tablename 失败_mysql 创建用户

一. 创建用户命令:CREATE USER usernamehost IDENTIFIED BY password;说明:username:你将创建的用户名host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆&#…

sql2000 mysql 兼容_SQL Server2000如何恢复数据库

以里诺仓库管理软件(SQL网络版)为例,如果您因电脑操作系统重装,需要把以前备份的数据库恢复过来,请您按如下操作来。首先,您需要安装MS SQL Server2000。1. 以Windowns XP为例,SQL Server个人版安装完成后,…

java dfs_Java数据结构与算法 深搜(DFS)的简单使用(一)之排列组合

今天,我们来简单介绍一下深度优先搜索(DFS)的概念和使用。在百度词条中,对深搜的解释是这样的。百度词条中的解释由此,我们可知,深搜是广泛运用到 图 中的搜索方法之一。用深度优先搜索遍历图的基本思路是:(1)访问顶点…

java 线程执行结束_Java_如何等待子线程执行结束

本程序的数据有可能是如下:main thread work startsub thread start working.main thread work done.now waiting sub thread done.sub thread stop working.now all done.忽略标号, 当然输出也有可能是1和2调换位置了. 这个我们是无法控制的. 我们看下线程的join操作, 究竟干了…