记录一下docker的平常使用命令,本文主要针对linux + mac操做系统而言,window是否适用不太肯定,谨慎使用html
<!-- more -->linux
docker进程启动、中止、重启,常见的三种casegit
# 启动docker service docker start # 关机docker service docker stop # 重启docker service docker restart
镜像做为容器执行的前提条件,通常须要掌握的几个命令无非是搜索,下载,删除,建立github
# 镜像列表 docker images # 检索镜像, 从镜像仓库中检索 docker search xxx # 下载镜像 docker pull xxx # 删除镜像 docker rmi xxx
关于建立镜像,有必要稍微详细一点点docker
# 经过容器建立镜像 docker commit -m="首次提交" -a="一灰灰Blog" dd85eb055fe8 yh/centos:v0.1 # 镜像历史查询 docker history yh/centos
上面的几个参数进行说明centos
-m
和git的提交同样,后面跟上描述信息-a
版权声明,这个东西是我建立的,有啥问题,找我dd85eb055fe8
容器idyhh/quick-os:0.1
建立的镜像名接下来就是正菜了,容器的各类操做,启动,关闭,重启,日志查询以及各类进入容器内部搞事情bash
万事开头第一步,加载镜像,建立容器学习
docker run 镜像名:版本
run后面能够跟不少的参数,好比容器暴露端口指定,存储映射,权限等等,因为参数过多,下面只给出几个不一样的例子,来具体的演示参数能够怎么加测试
case1: 建立并后台执行ui
docker run -i -t -d centos:latest
-d
,指定容器运行与前台或者后台,不加上时前台-i
: 打开STDIN,用于控制台交互-t
: 支持终端登陆case2: 运行一个带命令在后台不断执行的容器
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