docker命令篇

时间:2023-11-17 17:28:08

基础命令:

镜像:

获取镜像

$ 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.