记录一下docker的日常使用命令
1. docker进程
docker进程启动、停止、重启,常见的三种case
启动docker
service docker start
关机docker
service docker stop
重启docker
service docker restart
2. 镜像操作
镜像作为容器执行的前提条件,一般需要掌握的几个命令无非是搜索,下载,删除,创建
镜像列表
docker images
检索镜像, 从镜像仓库中检索
docker search xxx
下载镜像
docker pull xxx
删除镜像
docker rmi xxx
关于创建镜像,有必要稍微详细一点点
通过容器创建镜像
docker commit -m="首次提交" -a="一灰灰Blog" dd85eb055fe8 yh/centos:v0.1
镜像历史查询
docker history yh/centos
上面的几个参数进行说明
-m 和git的提交一样,后面跟上描述信息
-a 版权声明,这个东西是我创建的,有啥问题,找我 dd85eb055fe8 容器id yhh/quick-os:0.1 创建的镜像名
3. 容器操作
接下来就是正菜了,容器的各种操作,启动,关闭,重启,日志查询以及各种进入容器内部搞事情
a. run
万事开头第一步,加载镜像,创建容器
docker run 镜像名:版本
run后面可以跟很多的参数,比如容器暴露端口指定,存储映射,权限等等,由于参数过多,下面只给出几个不同的例子,来具体的演示参数可以怎么加
case1: 创建并后台执行
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
b. 基操
容器创建完毕之后,就是一些基本操作了,启动、停止、重启、删除
查看容器列表, 列出所有的容器
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
c. 进阶
接下来进入一些容器的高级操作技巧(实际上也并没有特别酷炫)
为了演示一些进阶的内容,这里创建一个容器作为测试
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