基础命令:
镜像:
获取镜像
$ docker pull centos:7
下拉自己仓库镜像,在后面仓库部分会讲到。
列出镜像:
$ docker image ls
删除镜像:
$ docker image rm cnetos:7
容器:
启动容器:
$ docker run -it centos:7 bash
$ docker run centos:7 echo "hello world"
-t
选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i
则让容器的标准输入保持打开
列出容器:
$ docker container ls # 正在运行中的容器
$ docker container ls -a # 所有,包括已经结束的容器
重新启动已终止的容器
$ docker container start
在运行的容器中执行命令
$docker exec -it 4d34fbf944a5 /bin/bash
守护态运行
更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d
参数来实现
$ docker run -d centos:7
奔溃时重启
$ docker run -d --restart always centos:7
终止容器
$ docker container stop
导出、导入容器
$ docker export 7691a814370e > centos.tar $ docker import centos.tar zn/centos:7
清除所有处于终止状态的容器:
$ docker container prune
查看日志
$ docker logs container_name $ docker inspect --format='{{.LogPath}}' containername
# 查看日志文件所在路径,打开即可分析
查看容器占用情况(内存,cpu)
$ docker stats container_name
数据卷:
# 创建
$ docker volume create myvolume # list
$ docker volume ls # delete
$docker volume rm # 清理无容器的数据卷
$docker volume prune
数据卷 是被设计用来持久化数据的,它的生命周期独立于容器,Docker 不会在容器被删除后自动删除 数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的 数据卷。如果需要在删除容器的同时移除数据卷。可以在删除容器的时候使用 docker rm -v 这个命令。docker下所有的volume都在host机器上的指定目录下/var/lib/docker/volumes
仓库:
上传镜像
# 登录
docker login # 打标签,重命名
$ docker tag centos:7 username/centos:7
# 上传
$ docker push username/centos:7
下拉自己的镜像
# 先登录 $ docker pull username/centos:7
常用命令其实不多,最重要的非dockerfile莫属,下篇重点介绍Dockerfile.