docker命令[容器]

学习中总结的命令

什么是容器?

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

容器好处:

1、轻量级

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

2、标准

Docker容器基于开放标准,可在所有主要Linux发行版,Microsoft Windows以及任何基础架构上运行

 

3、安全

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

1、下载centos镜像

docker pull centos

2、创建并启动容器

语法

docker run [options] images [command][args]

options说明

--name="容器新名字": 为容器制定一个名称;

-d: 后台运行容器,并返回容器ID,也即启动守护式容器;

-i: 以交互模式运行容器,通常与-t同时使用;

-t: 为容器重新分配一个伪输入终端,通常与-i同时使用;

-P:随机端口映射;

-p:指定端口映射,有以下四种格式

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort

containerPort

3、交互式运行

#使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

docker run -it centos /bin/bash

例如:运行centos,执行以下命令,进入容器内部

docker run -it --name mycentos01 centos /bin/bash

4、列出当前所有正在运行的容器

语法

docker ps [options]

options语法说明

-a:列出当前所有正在运行的容器+历史上运行过的

-l:显示最近创建的容器

-n:显示最近N个创建的容器

-q:静默模式,只显示容器编号

--no-trunc:不截断输出

5、退出容器

exit 退出容器并关闭容器

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

6、启动、重启、关闭容器

docker start 容器ID或容器名称

docker restart 容器ID或容器名称

docker stop 容器ID或容器名称

7、删除已停止的容器

#单个删除

docker rm 容器ID

#多个删除(-f 强制)

docker rm -f ${docker ps -aq}

8、强制停止容器

docker kill 容器ID或容器名称

9、其它重点内容

9.1 启用守护式容器

#在使用镜像centos:latest以后台模式启动一个容器

docker run -d centos

问题:docker ps -a 进行查看,会发现容器已经退出

很重要的说明一点:docker容器后台运行,就必须有一个前台进程

容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就会自动退出的。

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动使用的service即可。例如:service nginx start

但是这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用。

这样的容器后台启动后,会立即自杀因为他觉得他没事可做了。

所以最佳的解决方案是:将你要运行的程序以前台进程的形式运行

9.2 查看容器日志

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

1、先运行一个程序,在后台被隔离两秒输出(hello ayiol)

docker run -d centos /bin/sh -c "while true;do echo hello ayiol;sleep 2;done"

2、docker logs -tf --tail 10 容器ID

-t 是加入时间戳

-f 跟随最新的日志打印

--tail 数字 显示最后多少条

9.3 查看容器运行进程

docker top 容器ID

9.4 查看容器内部细节

docker inspect 容器ID

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

#方式一:

docker exec -it 容器ID /bin/bash

#方式二:

docker attach 容器ID

#两种方式的区别

exec 在容器中打开新的终端,并且可以启动新的进程,如果以这种方式进入容器,可以使用exit退出,而不会关闭容器

attach 直接进入容器终端,不会启动新的进程,这种方式里面使用exit退出会关闭容器,如果不想关闭容器必须使用ctrl+p+q

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

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

例如:docker cp 容器ID:/usr/local/tomcat/webapps/docs /root/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值