systemctl命令是系统服务管理器指令
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker
systemctl disable docker
docker info
docker --help

命令
docker images

PS:这些镜像是我提前拉取的;新安装的docker应该是一个空列表,只有表头
参数说明
注意事项
docker search 镜像名称

名称:版本号,如果版本号不指定则是最新的版本,命令如下
docker pull 镜像名称[:版本号]docker pull centos:7docker pull centos:latest按照镜像id删除镜像,或者镜像名称:版本号
docker rmi 镜像ID | 镜像的名称:版本号删除所有镜像(谨慎操作)
docker rmi `docker images -q`
这里也不演示了
docker psdocker ps -adocker ps -l
基于已有的镜像来创建容器,创建与运行使用如下命令
docker run参数说明
| 参数 | 意义 |
|---|---|
-i |
表示运行容器 |
-t |
表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端/bin/bash |
--name |
为创建的容器命名(名称必须唯一) |
-v |
表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上 |
-d |
在run后面加上-d参数, 则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,并指定终端,创建后就会自动进去容器) |
-p |
表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射 |
docker pull centos:7docker run -it --name=mycentos centos:7 /bin/bash-it:创建容器并进入容器指定命令行--name:指定容器名称(唯一)centos:7:指定镜像文件(可以是镜像名称或者镜像ID)/bin/bash:进入容器命令行的指令
docker run -di --name=mycentos2 centos:7docker exex -it mycentos2 /bin/bash
docker stop 容器名称 | 容器IDdocker start 容器名称 | 容器ID
docker restart 容器名称 | 容器ID

docker inspect 容器名称 | 容器IDdocker inspect mycentos2
容器之间在一个局域网内,linux宿主机器可以与容器进行通信;但是外部的服务器是不能与容器直接通信的,如果需要则需要通过宿主机器端口的代理
删除一个容器的前提是容器必须是关闭状态
删除指定的容器
docker rm 容器名称 | 容器IDdocker rm mycentos2
删除所有容器
docker rm `docker ps -a -q`

将Linux宿主机中的文件拷贝到容器内可以使用命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
具体操作如下所示
# 1、创建一个文件cpTest.txt
touch cpTest.txt
# 2、复制该该文件到 mycentos 容器的 / 目录下
# 格式:docker cp 源文件 容器名称:路径
docker cp cpTest.txt mycentos2:/
# 3、进入 mycentos 容器
docker exec -it mycentos /bin/bash
# 4、查看容器 ~ 目录下的文件是否存在cpTest.txt
ls -l

将文件从容器内拷贝出来到Linu宿主机可以使用如下命令
# docker cp 容器名称:容器目录 需要拷贝的文件或目录
# 1、进入容器后创建文件cpTest2.txt
# 2、退出容器
# 3、在Linux宿主机执行复制,将容器 mycentos 的/cpTest2.txt文件复制到宿主机的/root目录下
# 格式:docker cp 容器名称:文件路径 linux系统的路径
docker cp mycentos:/cpTest2.txt /root

PS:停止状态的容器也是可以进行文件拷贝的,向内向外都可以
可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器
创建容器时添加-v参数,后边为宿主机目录:容器目录,例如
docker run -di -v /usr/local/test:/usr/local/test --name=mycentos3 centos:7执行如下命令
# 创建linux宿主机器要挂载的目录 (不创建也可以,虚拟机会自动创建)
mkdir /root/test
# 创建并启动容器mycentos2
# 并挂载 linux中的/roor/test目录到容器的/usr/local/test
# 也就是在 linux中的/root/test中操作相当于对容器相应目录操作
docker run -di -v /root/test:/usr/local/test --name=mycentos2 centos:7
# 在linux宿主机下创建文件
touch /root/test.java
# 进入容器
docker exec -it mycentos2 /bin/bash
ls /usr/local/test

PS:: 如果你共享的是多级的目录,可能会出现权限不足的提示。 这是因为CentOS7中的安全模块selinux把权限禁掉了,需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题
我想用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中编写命令行实用程序
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
//1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json
我从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
1.在Python3中,下列关于数学运算结果正确的是:(B)a=10b=3print(a//b)print(a%b)print(a/b)A.3,3,3.3333...B.3,1,3.3333...C.3.3333...,3.3333...,3D.3.3333...,1,3.3333...解析: 在Python中,//表示地板除(向下取整),%表示取余,/表示除(Python2向下取整返回3)2.如下程序Python2会打印多少个数:(D)k=1000whilek>1: print(k)k=k/2A.1000 B.10C.11D.9解析: 按照题意每次循环K/2,直到K值小于等
我有一个问题。我想从另一个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/
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
我正在尝试按Rails相关模型中的字段进行排序。我研究的所有解决方案都没有解决如果相关模型被另一个参数过滤?元素模型classItem相关模型:classPriority我正在使用where子句检索项目:@items=Item.where('company_id=?andapproved=?',@company.id,true).all我需要按相关表格中的“位置”列进行排序。问题在于,在优先级模型中,一个项目可能会被多家公司列出。因此,这些职位取决于他们拥有的company_id。当我显示项目时,它是针对一个公司的,按公司内的职位排序。完成此任务的正确方法是什么?感谢您的帮助。PS-我