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