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的一些常用命令了,希望会对大家有所帮助。
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我想用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中编写命令行实用程序
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我从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
我有一个使用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
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
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],