《 Docker常用命令之容器命令 》
前言
在前一篇文章中,完成了 Docker 镜像命令的使用与说明,有了镜像之后,接下来就可以进行容器的相关操作了,本篇将围绕容器相关的使用进行讲解,学完本篇后,将学会 Docker 容器基本使用与管理。
Docker常用命令之容器命令
一、基础部分
1、在容器操作前,先列出本地镜像,这儿就使用在上一章中拉取的镜像,输入命令 “ docker images -a ” ,如下图:
2、新建并启动一个Docker容器,
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
以启动一个redis:4.0.11容器为例,并实现客户端交互,在容器内部执行/bin/bash命令,
输入命令 “ docker run --interactive --tty redis:4.0.11 /bin/bash ”,当然也可简写为 “ docker run -it redis:4.0.11 /bin/bash ”,
启动成功后,发现进入了容器内部,并可对redis进行基本操作了,如下图:
[OPTIONS] 参数说明(变色的是较为常用的):
-d, --detach | 在后台运行容器并打印容器ID |
-e, --env | 设置环境变量 |
-h, --hostname | 定义容器主机名 |
-i, --interactive | 即使没有连接,也保持STDIN开放 |
--name | 为容器指定一个名称 |
--network | 将容器连接到网络 |
--read-only | 将容器的根文件系统挂载为只读(后面会详细讲到) |
--restart | 配置容器的重启策略,当容器退出时重新启动(默认为“no”) |
-t, --tty | 为当前容器分配一个客户端 |
-v, --volume | 绑定安装卷(关于容器卷,在Docker容器数据卷中会具体的讲解) |
《 Docker容器启动参数大全与详细说明 》
3、查看当前正在运行的容器,
语法:
docker ps [OPTIONS]
以列出当前所有正在运行的容器与以前运行但已停止的容器,输入命令 “ docker ps -a ”,如下图:
[OPTIONS] 参数说明:
-a, --all | 显示所有容器(默认显示只是运行) |
-f, --filter | 当启动的容器较多时,可根据提供的条件过滤输出 |
-n, --last | 显示最近创建的容器(包括所有状态)(默认-1) |
-l, --latest | 显示最新创建的容器(包括所有状态) |
--no-trunc | 不截断输出 |
-q, --quiet | 只显示镜像id |
-s, --size | 显示总文件大小 |
4、退出容器
第一种:停止容器退出,输入命令 “ exit ”,
第二种:容器不停止退出,使用快捷键 “ Ctrl + P + Q ”
5、启动容器,输入命令 “ docker start 容器ID/容器名称 ” 进行启动,如下图:
6、重启容器,输入命令 “ docker restart 容器ID/容器名称 ” 进行重启操作。
7、停止容器,输入命令 “ docker stop 容器ID/容器名称 ” 进行重启操作。
8、强制停止,这个在容器无法正常停止,且找不到任何原因的情况下使用,和宿主机中直接杀掉进程的命名相似,输入命令 “ docker kill 容器ID/容器名称 ” 进行停止操作。
9、删除已停止且废弃的容器,
普通删除,输入命令 “ docker rm 容器ID ” ,强制删除命令 “ docker rm -f 容器ID ” ,
批量且强制删除,输入命令 “ docker rm -f $(docker ps -qa) ”,
关于批量删除,还可以通过值传递的形式进行删除,输入命令 “ docker ps -qa | xargs docker rm ” 进行批量删除。
二、进阶部分
1、Docker容器使用守护进程的方式启动,输入命令 “ docker run -d tomcat ” ,如下图:
输入命名 “ docker ps ” ,查看启动结果,如下图:
*注意:为什么会这样 , 这个时Dokcer的运行机制的问题,Docker容器需要后台运行,就必须有一个前台进程。如果运行的容器没有挂起的进程,则会自动退出。
2、查看容器日志,后台启动一个容器,并且挂载一个进程,
输入命令 “ docker run -d centos /bin/sh -c "while true;do echo hello huazai;sleep 3;done" ” (当然这些shell编程不用纠结),如下图:
查看容器产生的日志,输入命令 “ docker logs -ft bade1b5daa6d ”,如下图:
日志参数说明:
--details | 打印容器的详细日志信息 |
-f, --follow | 跟踪日志输出 |
--since | 显示时间戳之后的日志(例如2013-01-02T13:23:37)或相对日志(例如42m, 42分钟) |
--tail | 从日志末尾显示的行数(默认为“all”) |
-t, --timestamps | 显示时间戳 |
--until | 在时间戳(例如2013-01-02T13:23:37)或相邻(例如42m, 42分钟)之前显示日志 |
3、查看容器内部运行的进程,输入命令 “ docker top 容器ID ” 进行查看,
4、查看容器内部的具体信息,输入命令 “ docker inspect 容器ID ” 进行查看,部分内容截图如下:
5、进入容器,好了写了这么多,到底是该进入容器了呃, 进入正在运行的容器并以命令行交互,这儿介绍常用的有两种方式:
第一种:docker exec -it 容器ID [COMMAND]
第二中:docker attach 容器ID
例如:进入到刚才测试使用的容器中,输入命令 “ docker exec -it bade1b5daa6d /bin/bash ” ,如下图:
谈谈 exec and attach 的区别:
exec : 在容器中打开新的终端,并且启动新的进程,如上图所示;
attach : 直接进入容器启动命令行终端,不会启动新的进程;
6、从容器中拷贝文件到宿主机上,输入命令 “ docker cp 容器ID:容器文件 宿主机文件路径 ”,如下图:
好了,关于 Docker常用命令之容器命令 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。
作 者: | 华 仔 |
联系作者: | who.seek.me@java98k.vip |
来 源: | CSDN (Chinese Software Developer Network) |
原 文: | https://blog.csdn.net/Hello_World_QWP/article/details/83716703 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |