配色: 字号:
Docker入门与实战
2020-11-24 | 阅:  转:  |  分享 
  
Docker演讲人2020-11-24目录01.基本概念02.常用命令01基本概念基本概念镜像(Image)容器(Container)仓库(
Repository)Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。镜像是创建Docker容器的基础容器是镜像
的一个运行实例。所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层容器镜像是轻量的、可执行的独立软件包,包含软件
运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。仓库类似于代码仓库,它是Docker集中存放镜像文件的场所。02常
用命令常用命令Docker设置镜像相关容器相关网络常用命令01docker自启动:systemctlenabledocker0
2启动docker:systemctlstartdocker.serviceDocker设置03停止docker:sys
temctlstopdocker.service04重启docker:systemctlrestartdocker.ser
vice05dockerinspect[OPTIONS]NAME|ID[NAME|ID...]dockerinspect
[OPTIONS]NAME|ID[NAME|ID...]docker的对象信息,json格式的常用命令搜索镜像获取镜像查看
镜像镜像相关存出和载入镜像创建镜像删除镜像上传镜像(需要注册)标记本地镜像12常用命令镜像相关搜索镜像dockersearch
<image>搜索线上镜像获取镜像dockerpull<image>:[tag]从仓库拉取镜像dock
erimages参数-a:显示所有的,默认情况下,过滤掉中间映像层--no-trunc:输出内容不截取-f:显示满足条件的镜像
-q:只显示镜像ID删除镜像dockerrmi[OPTIONS][IMAGE...]其中IMAGE可以为标签或ID。当为
标签时,如果该镜像有多个标签,该命令只是删除这个标签,并不影响镜像本身。创建镜像基于已有镜像的容器创建:dockercommi
t创建镜像基于本地模板导入:dockerimport基于Dockerfile创建:dockerbuilddockerb
uild[OPTIONS]PATH|URL|---build-arg=[]:设置镜像创建时的变量;--cpu-s
hares:设置cpu使用权重;--cpu-period:限制CPUCFS周期;--cpu-quota:限制
CPUCFS配额;--cpuset-cpus:指定使用的CPUid;--cpuset-mems:指定使用的内存
id;--disable-content-trust:忽略校验,默认开启;-f:指定要使用的Dockerfile路径;
--force-rm:设置镜像过程中删除中间容器;--isolation:使用容器隔离技术;--label=[]
:设置镜像使用的元数据;-m:设置内存最大值;--memory-swap:设置Swap的最大值为内存+swap,\\\
\\\\"-1\\\\\\\"表示不限swap;--no-cache:创建镜像的过程不使基于Dockerfile创建:doc
kerbuilddockerbuild[OPTIONS]PATH|URL|-用缓存;--pull:尝试去更
新镜像的新版本;--quiet,-q:安静模式,成功后只输出镜像ID;--rm:设置镜像成功后删除中间容器;-
-shm-size:设置/dev/shm的大小,默认值是64M;--ulimit:Ulimit配置。--tag,-t
:镜像的名字及标签,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个标签。--network
:默认default。在构建期间设置RUN指令的网络模式存出和载入镜像dockersave:保存之后就可以跟其他人分享了do
ckerload:载入通过save得到的镜像文件上传镜像(需要注册)dockerpushNAME[:TAG]|[REGI
STRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]标记本地镜像dockertagSOURCE_IMAG
E[:TAG]TARGET_IMAGE[:TAG]比如:dockertagubuntu:latestmyubuntu:la
testP6P5删除容器P4重启容器P3停止容器P2启动容器P1查看容器创建容器常用命令容器相关0102进入容器导出容器常用命令容
器相关0304导入容器查看容器日志dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]do
ckerrun,等价于先执行dockercreate命令,再执行dockerstart命令。参数-d,--detac
h=false指定容器运行于后台,并打印containerID默认为false-i,--interactive=fals
e打开STDIN,用于控制台交互-t,--tty=false分配tty设备,该可以支持终端登录,默认为false-u
,--user=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\"指定容器的用户-a,--attach=[]标准输入输出流和错误信息(必须是以非dockerrun-d
启动的容器)-w,--workdir=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\"指定容器的工作目录-c,--cpu-shares=0设置容器CPU权重,在CPU
共享场景使用-e,--env=[]指定环境变量,容器中可以使用该环境变量-m,--memory=\\\\\\\\\\
\\\\\\dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]dockerrun,等价
于先执行dockercreate命令,再执行dockerstart命令。参数\\\\\\\\\\\\\\\"\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\"指定容器的内存上限-P,--publish-all=false指定容
器暴露的端口-p,--publish=[]指定容器暴露的端口-h,--hostname=\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"指定容器的主机名-v,
--volume=[]给容器挂载存储卷,挂载到容器的某个目录--volumes-from=[]给容器挂载其他容器上的卷,挂
载到容器的某个目录--cap-add=[]添加权限,权限清单详见:http://linux.die.net/man/7/cap
abilities--cap-drop=[]删除权限,权限清单详见:http://linux.die.dockerrun
[OPTIONS]IMAGE[COMMAND][ARG...]dockerrun,等价于先执行dockercreate
命令,再执行dockerstart命令。参数net/man/7/capabilities--cidfile=\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"运行容器后
,在指定文件中写入容器PID值,一种典型的监控系统用法--cpuset=\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"设置容器可以使用哪些CPU,此参数可以用来容器独占CP
U--device=[]添加主机设备给容器,相当于设创建容器比如:dockerrun-d-p8080:80--n
amemyappmyaspnetapp对于所创建的bash容器,当使用exit命令退出之后,容器就自动处于退出(Exite
d)状态了。这是因为对Docker容器来说,当运行的应用退出后,容器也就没有继续运行的必要了?。参数-d可以后台运行查看容器do
ckerps-a查看所有容器启动容器dockerstart<ContainerId(或者name)>停止容器d
ockerstop<ContainerId(或者name)>重启容器dockerrestart<Cont
ainerId(或者name)>删除容器dockerrm<ContainerId(或者name)>进入容器d
ockerexec-itcontainerID导出容器dockerexport导入容器dockerimport导入后变成
镜像dockerlogs[OPTIONS]CONTAINER参数--tail:从日志末尾显示的行数,默认all--ti
mestamps,-t:显示时间戳--follow,-f:按照日志输出比如查看myapp7容器最后20行日志:dockerlogs-f-t--tail20myapp7在主机上创建一个网络:dockernetworkcreatemynet查看自定义bridge网络:dockernetworkinspectmynet常用命令网络断开网络:dockernetworkdisconnetmynet<ContainerID>移除网络(要求所有容器关闭或断开与此网络的连接):dockernetworkrmmynet感谢聆听
献花(0)
+1
(本文系职场细细品原创)