记录一下docker的平常使用命令,本文主要针对linux + mac操做系统而言,window是否适用不太肯定,谨慎使用html
docker进程启动、中止、重启,常见的三种caselinux
# 启动docker
service docker start
# 关机docker
service docker stop
# 重启docker
service docker restart
复制代码
镜像做为容器执行的前提条件,通常须要掌握的几个命令无非是搜索,下载,删除,建立git
# 镜像列表
docker images
# 检索镜像, 从镜像仓库中检索
docker search xxx
# 下载镜像
docker pull xxx
# 删除镜像
docker rmi xxx
复制代码
关于建立镜像,有必要稍微详细一点点github
# 经过容器建立镜像
docker commit -m="首次提交" -a="一灰灰Blog" dd85eb055fe8 yh/centos:v0.1
# 镜像历史查询
docker history yh/centos
复制代码
上面的几个参数进行说明docker
-m
和git的提交同样,后面跟上描述信息-a
版权声明,这个东西是我建立的,有啥问题,找我dd85eb055fe8
容器idyhh/quick-os:0.1
建立的镜像名接下来就是正菜了,容器的各类操做,启动,关闭,重启,日志查询以及各类进入容器内部搞事情centos
万事开头第一步,加载镜像,建立容器bash
docker run 镜像名:版本
复制代码
run后面能够跟不少的参数,好比容器暴露端口指定,存储映射,权限等等,因为参数过多,下面只给出几个不一样的例子,来具体的演示参数能够怎么加学习
case1: 建立并后台执行测试
docker run -i -t -d centos:latest
复制代码
-d
,指定容器运行与前台或者后台,不加上时前台-i
: 打开STDIN,用于控制台交互-t
: 支持终端登陆case2: 运行一个带命令在后台不断执行的容器ui
docker run -d centos:latest ping www.baidu.com
复制代码
case3: 运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑
docker run -d --restart=always centos:latest ping www.baidu.com
复制代码
case4: 指定容器名
docker run -d --name=yhh_centos centos:latest
复制代码
case5: 暴露容器端口80,并与宿主机端口8080绑定
docker run -d --name=yhh_centos -p 8080:80 centos:latest
复制代码
case6: 指定容器与宿主机目录(/home/yihui/html/www)共享
docker run -d --name=yhh_centos -v /home/yihui/html/www:/var/www centos:latest
复制代码
容器建立完毕以后,就是一些基本操做了,启动、中止、重启、删除
# 查看容器列表, 列出全部的容器
docker ps -a
# 启动容器,start后面能够跟上容器名,或者容器id
docker start xxx # (这里的xxx能够是容器名:yhh_centos 也能够是容器id:f57398ab22c5)
# 关闭容器
docker stop xxx
# 重启
docker restart xxx
# 删除
docker rm xxx
复制代码
在查看容器列表时,若是某个容器的启动参数特别长,直接使用docker ps -a
会发现看不到完整的启动命令,这个时候能够带上参数--no-trunc
来显示完整命令
docker ps -a --no-trunc
复制代码
接下来进入一些容器的高级操做技巧(实际上也并无特别酷炫)
为了演示一些进阶的内容,这里建立一个容器做为测试
docker run -it -d --name=yhhos centos
复制代码
容器日志查询
日志,定位问题的神器
# 查询xxx容器的日志
docker logs yhhos
复制代码
基本上不太会直接使用上面的命令,由于上面把全部的日志都打印出来了,能够直接晃瞎咱们的钛合金x眼
通常日志能够加两个参数 -f
, -t
docker logs -f -t --since="2019-05-11" --tail=10 yhhos
复制代码
--since
: 此参数指定了输出日志开始日期,即只输出指定日期以后的日志。-f
: 查看实时日志-t
: 查看日志产生的日期--tail=10
: 查看最后的10条日志。文件拷贝
将容器的某个文件捞出来;或者强塞,一个cp便可
# 将当前目录的test.md文件拷贝到容器的 /tmp 目录下
docker cp test.md yhhos:/tmp
# 将容器的/tmp/test.md目录拷贝到当前目录下
docker cp yhhos:/tmp/test.md ./out.md
复制代码
进入容器
进入容器内部,而后就能够随心所欲了...
docker exec -it yhhos /bin/bash
复制代码
获取容器全部信息
docker inspect yhhos
复制代码
一灰灰的我的博客,记录全部学习和工做中的博文,欢迎你们前去逛逛
尽信书则不如,已上内容,纯属一家之言,因我的能力有限,不免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
一灰灰blog