文章目录

  • 常用命令
  • docker的启动、停止、重启
  • 管理命令
  • 镜像管理
  • Docker 参数 -i -t 的作用
  • 命令的详细演示
  • docker create
  • docker start
  • docker run
  • docker start 和 docker run命令的区别
  • docker ps
  • docker ps –a
  • docker images
  • docker images –a
  • docker stop
  • docker pause
  • docker rm
  • docker rmi
  • docker commit
  • docker build
  • docker exec
  • docker inspect or
  • docker save
  • docker export
  • docker history


常用命令

docker load -i ubuntu.tar 导入镜像(以ubuntu镜像为模板)
docker run -it --name vm1 ubuntu 	创建容器(以ubuntu镜像为模板,(run=create+start)

docker ps 	查看容器状态,当前活跃的
docker ps -a 	查看容器状态(包括不活跃的容器),所有的

docker attach vm1 	连接容器
docker top vm1 	查看容器进程
docker logs vm1 	查看容器指令输出 -f 参数可以实时查看
docker inspect vm1 	查看容器详情
docker stats vm1 	查看容器资源使用率
docker diff vm1 	查看容器修改
docker stop vm1 	停止容器
docker start vm1 	启动容器
docker kill vm1 	强制干掉容器
docker restart vm1 	重启容器
docker pause/unpause vm1 	暂停/恢复容器

docker rm vm1 	删除容器
docker rm -f vm1 	强制删除容器

docker rmi 镜像名 	删除镜像
docker images 	列出镜像

docker run 命令先是利用镜像创建了一个容器,然后运行这个容器。docker run就是docker create和docker start两个命令的组合。

docker的启动、停止、重启

systemctl start docker #启动docker服务 
service docker start 

systemctl stop docker #关闭docker服务 
service docker stop 

systemctl restart docker #重启docker服务 
service docker restart 

systemctl daemon-reload #重载守护进程 
chkconfig docker on #开机自启docker

管理命令

container   管理容器
  image       管理镜像
  network     管理网络
  node        管理Swarm节点
  plugin      管理插件
  secret      管理Docker secrets
  service     管理服务
  stack       管理Docker stacks
  swarm       管理Swarm集群
  system      查看系统信息
  volume      管理卷
  
如:docker container ls 显示所有容器

镜像管理

镜像用来创建容器,是容器的只读模板,默认可以从 docker hub 上下载。,每次创建新的镜像都会在父镜像上构建一个增量的层,基于 AUFS 技术

docker search #查询镜像 
docker pull #拉取镜像 
docker push #推送镜像 
docker inspect #查看镜像详情 
docker images #列出本地已有的所有镜像 
docker load -i ubuntu.tar #导入镜像 
docker commit #更新镜像 
docker rmi #删除镜像 
docker build #从一个Dockerfile创建镜像

参数:

-m        指定提交的说明信息

  - a        指定更新的用户信息

  -  t        指定新的镜像的用户信息

  -  p       指定端口映射(映射范围49000~49900

Docker 参数 -i -t 的作用

i是说启动交互式,t是分配一个tty。用比较简单容易理解的话说是-i 开启了input(输入)功能 -t开启了一个连接容器里边的terminal(终端)

通常的解释是: -t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开.

问题

所以通常都是这样的: sudo docker run -it ubuntu 进入了命令交互界面
但是如果不加呢? sudo docker run ubuntu 或sudo docker create ubuntu & sudo docker start ubuntu
这样的话, docker容器无法启动。

原因

Docker中系统镜像的缺省命令是 bash,如果不加 -ti bash 命令执行了自动会退出。这是因为如果没有衔接输入流,本身就会马上结束。加-ti 后docker命令会为容器分配一个伪终端,并接管其stdin/stdout支持交互操作,这时候bash命令不会自动退出。

命令的详细演示

docker create

docker create 命令为指定的镜像(image)添加了一个可读写层,构成了一个新的容器。注意,这个容器并没有运行。

docker怎么看容器里面的路径 docker查看容器的命令_ubuntu

docker start

Docker start命令为容器文件系统创建了一个进程隔离空间。注意,每一个容器只能够有一个进程隔离空间。

docker怎么看容器里面的路径 docker查看容器的命令_Docker_02

docker run

docker怎么看容器里面的路径 docker查看容器的命令_docker_03

docker start 和 docker run命令的区别

docker怎么看容器里面的路径 docker查看容器的命令_Docker_04

从图片可以看出,docker run 命令先是利用镜像创建了一个容器,然后运行这个容器。

这个命令非常的方便,并且隐藏了两个命令的细节,但从另一方面来看,这容易让用户产生误解。

docker run命令类似于git pull命令。git pull命令就是git fetch 和 git merge两个命令的组合

同样的,docker run就是docker create和docker start两个命令的组合

docker ps

docker ps 命令会列出所有运行中的容器。这隐藏了非运行态容器的存在,如果想要找出这些容器,我们需要使用下面这个命令。

docker怎么看容器里面的路径 docker查看容器的命令_ubuntu_05

docker ps –a

docker ps –a命令会列出所有的容器,不管是运行的,还是停止的。

docker怎么看容器里面的路径 docker查看容器的命令_docker怎么看容器里面的路径_06

docker images

docker images命令会列出了所有顶层(top-level)镜像。
实际上,在这里我们没有办法区分一个镜像和一个只读层,所以我们提出了top-level镜像。
只有创建容器时使用的镜像或者是直接pull下来的镜像能被称为顶层(top-level)镜像,并且每一个顶层镜像下面都隐藏了多个镜像层。

docker怎么看容器里面的路径 docker查看容器的命令_Docker_07

docker images –a

docker images –a命令列出了所有的镜像,也可以说是列出了所有的可读层。
如果你想要查看某一个image-id下的所有层,可以使用docker history查看。

docker怎么看容器里面的路径 docker查看容器的命令_ubuntu_08

docker stop

docker怎么看容器里面的路径 docker查看容器的命令_Docker_09

docker pause

docker stop和docker kill命令会发送UNIX的信号给运行中的进程,docker pause命令则不一样,
它利用了cgroups的特性将运行中的进程空间暂停。
但是这种方式的不足之处在于发送一个SIGTSTP信号对于进程来说不够简单易懂,以至于不能够让所有进程暂停。

docker怎么看容器里面的路径 docker查看容器的命令_docker_10

docker rm

docker rm命令会移除构成容器的可读写层。注意,这个命令只能对非运行态容器执行

docker怎么看容器里面的路径 docker查看容器的命令_docker_11

docker rmi

docker rmi 命令会移除构成镜像的一个只读层。
你只能够使用docker rmi来移除最顶层(top level layer)(也可以说是镜像),你也可以使用-f参数来强制删除中间的只读层。

docker怎么看容器里面的路径 docker查看容器的命令_docker_12

docker commit

docker commit命令将容器的可读写层转换为一个只读层,这样就把一个容器转换成了不可变的镜像。

docker怎么看容器里面的路径 docker查看容器的命令_Docker_13

docker build

docker build命令非常有趣,它会反复的执行多个命令。

docker怎么看容器里面的路径 docker查看容器的命令_docker怎么看容器里面的路径_14

docker怎么看容器里面的路径 docker查看容器的命令_ubuntu_15


我们从上图可以看到,build命令根据Dockerfile文件中的FROM指令获取到镜像,然后重复地run(create和start)、修改、commit。

在循环中的每一步都会生成一个新的层,因此许多新的层会被创建。

docker exec

docker exec 命令会在运行中的容器执行一个新进程。

docker怎么看容器里面的路径 docker查看容器的命令_docker_16

docker inspect or

docker inspect命令会提取出容器或者镜像最顶层的元数据
inspect( 检查; 查看; 审视; 视察)

docker怎么看容器里面的路径 docker查看容器的命令_docker怎么看容器里面的路径_17

docker save

docker save命令会创建一个镜像的压缩文件,这个文件能够在另外一个主机的Docker上使用。
和export命令不同,这个命令为每一个层都保存了它们的元数据。这个命令只能对镜像生效。

docker怎么看容器里面的路径 docker查看容器的命令_Docker_18

docker export

docker export命令创建一个tar文件,并且移除了元数据和不必要的层,将多个层整合成了一个层,只保存了当前统一视角看到的内容(注expoxt后的容器再import到Docker中,通过docker images –tree命令只能看到一个镜像;
而save后的镜像则不同,它能够看到这个镜像的历史镜像

docker怎么看容器里面的路径 docker查看容器的命令_Docker_19

docker history

docker history命令递归地输出指定镜像的历史镜像

docker怎么看容器里面的路径 docker查看容器的命令_docker怎么看容器里面的路径_20