草庐IT

docker常用操作命令。

晚安果汁 2023-10-15 原文

docker是一款基于Linux之上的容器,由于它的抽象层比虚拟机少,而且利用的是主机内流,不需要价值操作系统的内核,所以它比传统的虚拟机更快,所以越来越多的人选择用docker了,今天我要和大家分享的就是docker的常用操作命令。

我们都知道,docker中常用的几个类型有帮助启动类命令、镜像命令和容器命令,接下来我就将自己总结的命令给大家一一展示。

一、帮助启动类命令。

1、启动,命令:systemctl start docker

2、停止,命令:systemctl stop docker

3、重启,命令:systemctl restart docker

4、查看docker状态,命令:systemctl status docker

5、开机启动,命令:systemctl enable docker

6、查看docker概要信息,命令:docker info

7、查看docker整体帮助文档,命令:docker --help

8、查看docker命令帮助文档,命令:docker 具体命令 --help

二、镜像命令。

1、列出本地主机上的镜像,展示的是一个列表,表头含义如下:

repository:表示镜像的仓库源

tag:镜像的标签

images ID:镜像ID

created:镜像创建时间

size:镜像大小

命令:docker images

-a:列出本地所有镜像(包括历史镜像)

-q:只显示镜像ID

2、某个×××镜像名字,展示的是一个列表,表头含义如下:

name:镜像名称

description:镜像说明

stars:点赞数量

official:是否是官方的

automated:是否是自动构建的

命令:docker search

--limit:只列出N个镜像,默认为25个

--limit 5 redis:只列出5个redis

3、下载镜像,命令:docker pull 某个×××镜像名字,有两种命令:

a.docker pull 镜像名字[:TAG]

b.docker pull 镜像名字   没有tag就是最新版,等价于。

4、查看镜像/容器/数据卷所占的空间,命令:docker system df

5、删除某个×××镜像名字ID(这里就不展示删除了),命令:docker rmi

删除单个,命令:docker rmi  -f  镜像ID

删除多个,命令:docker rmi  -f  镜像名1:TAG镜像名2:TAG

删除全部,命令:docker rmi  -f  $(docker images -qa)

三、容器命令。

1、新建+启动容器,命令:docker [options] image [command] [ARG......]

启动交互式容器(前端服务器)

--name=“容器新名字”

-d:后台运行容器

启动交互式,命令:docker run -it

-i:以交互模式运行容器  interactive

-t:为容器重新分配一个为输入终端  tyy

前台有伪终端,等待交互,命令:docker run -it Ubuntu bash/bin

P:随机终端口映射,大写P

p:指定终端口映射,小写p,常用此写法。

2、列出当前所运行的容器,命令:docker -ps [options]

常用命令:

docker -ps -a:列出当前所有正在运行的容器+历史上运行过的

docker -ps  -l:显示最近创建的容器

docker -ps  -q:静默模式,只显示容器ID

3、退出容器,有两种退出命令(这里不做展示)。

a.exit:run进去容器,exit推出,容器停止。

b.ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止。

4、启动已经停止的容器,命令:docker start 容器ID或容器名

5、重启容器,命令:docker restart 容器ID或容器名

6、停止容器,命令:docker stop 容器ID或容器名

7、强制停止容器,命令:docker kill 容器ID或容器名

8、删除已停止的容器,命令如下:

docker rm +容器ID,先停下来再删除

docker rm -f   容器ID/容器名    强制删除

一次性删除多个容器实例:docker rm -f   $(docker ps -a -q)

                                           docker ps -a -q | xargs docker rm

 9、启动守护式容器(后台服务器),命令:docker run -d 容器名

docker run -it redis:6.0.8 前台交互式启动

启动镜像,命令:docker run -it 容器id /bin/bash

docker run -d redis:6.0.8 后台守护式启动

10、查看容器日志,命令:docker logs 容器ID

11、查看容器内运行的进程,命令:docker top 容器ID

12、查看容器内部进程,命令:docker inspect 容器ID

13、进入正在运行的容器并进行命令交互,命令:docker exec -it 容器ID bashshell

重新进入,命令:docker attach 容器ID

attach:直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器停止。

exec:是在容器中打开新的终端,不会启动新的进程,用exit退出,不会导致容器终止,一般推荐使用这一种。

14、从文件拷贝内容到主机上,命令:docker cp 容器ID:容器内路径,目的主机路径

15、导出和导入容器。

export:导出容器的内容留作为一个tar归档文件(对应import命令)。

import:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export命令)。

案例:

docker export 容器ID > 文件名.tar

cat 文件名.tar | docker import -镜像用户/镜像名:镜像版本号

四、外网联通的情况下安装vim命令,docker容器内执行以下两条命令。

1、apt-get update

2、apt-get -y install vim

以上就是docker的一些常用命令了,希望会对大家有所帮助。

有关docker常用操作命令。的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  3. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  4. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  5. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  6. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  7. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  8. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

  9. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  10. ruby - 在 Ruby 中是否有一种惯用的方法来操作 2 个数组? - 2

    a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],

随机推荐