08-Docker命令[容器]

什么是容器

容器镜像是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码,运行时,系统工具,系统库,设置。不管环境如何,集装箱化软件都可以运行相同的Linux和Windows应用程序。容器将软件与其周围环境隔离开来,例如开发环境和生产环境之间的差异,并有助于减少在同一基础架构上运行不同软件的团队之间的冲突。

轻量级

在一台机器上运行的Docker容器共享该机器的操作系统内核; 他们立即开始并使用更少的计算和内存。图像由文件系统层构建并共享公用文件。这最大限度地减少了磁盘使用量,图像下载速度更快。

标准

Docker容器基于开放标准,可在所有主要Linux发行版,Microsoft Windows以及任何基础架构(包括虚拟机,裸机和云中)上运行。

安全

Docker容器将应用程序彼此隔离并从底层基础架构中分离出来。Docker提供了最强大的默认隔离功能,可以将应用程序问题限制在一个容器中,而不是整个机器上。

演示前提

有镜像才能创建容器,这个是根本要求(下载centos镜像来演示)

docker pull centos

创建并启动容器

Run

语法

docker run [options] images [command][args] /镜像ID

options说明

--name="容器新名字": 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
      ip:hostPort:containerPort
      ip::containerPort
      hostPort:containerPort
      containerPort

交互式运行

docker run -it centos /bin/bash 

直接进入了容器

退出容器

exit  退出容器并关闭容器
ctrl+p+q 退出不关闭容器

列表所容器

语法

docker ps [options]

默认只列出正在运行的容器

options 的参数说明

-a  显示所有运行和没有运行的容器
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
--no-trunc :不截断输出。

启动重启关闭容器

Docker restart 容器ID或容器名称
Docker start 容器ID或容器名称
Docker stop 容器ID或容器名称

强制停止容器

docker kill 容器ID或容器名称

删除已停止的容器

#单个删除
docker rm 容器ID
#多个删除
docker rm -f $(docker ps -aq)
docker ps -aq xargs docker rm

其它重点内容

启用守护式容器

docker run -d centos
  • 问题:docker ps -a 进行查看, 会发现容器已经退出
  • 很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
  • 容器运行的命令如果不是那些 一直挂起的命令(比如运行top,tail),就是会自动退出的。

查看容器日志

如果是后台运行的程序,那么如何查看运行的日志呢?

启动一个tomcat

docker  run -d -p 8080:8080 tomcat:8.5

使用日志命令查看tomcat的输出日志

docker  logs  容器ID

-t 是加入时间戳
-f 跟随最新的日志打印
--tail 数字 显示最后多少条

查看容器运行进程

docker top 容器ID

查询容器内部细节

docker inspect 容器ID

进入正在进行的容器并以命令行交互

方式1

docker exec -it 容器ID /bin/bash   重新打开一个新的终端 如果以这种方式进入容器,可以使用exit退出。而不会关闭容器

方式2

docker attach 容器ID

两种方式的区别

  • exec 在容器中打开新的终端 并且可以启动新的进程
  • attach 直接进行容器终端,不会启动新的进程
  • 这种方式里面使用exit退出会关闭容器 如果不想关闭容器必须使用ctrl+p+q

进入容器内拷贝文件到主机

docker cp 容器ID:容器内的路径  主机目录

posted @ 2020-02-14 16:18  Leader_TBlog  阅读(133)  评论(0)    收藏  举报