前言
当我们在工作中应用容器部署项目的时候,肯定会像在服务器部署一样,需要查看服务的日志,元数据,进程等,所以在容器中也要学会这些基本的操作命令
后台运行容器
docker run -d 镜像名
问题:
当你用上面命令运行某个容器后,问题当docker ps 发现run的容器停止了。
坑:docker 容器使用后台运行的时候,就必须要有一个前台进程,docker发现没有应用就会自动停止。
比如后台启动ngnix 容器,容器发现没有提供服务,就会立刻停止,就是没有程序了。
查看日志
docker logs命令
docker logs [options] 容器获取容器的日志。
名字 | 默认值 | 描述 |
---|---|---|
–details | 显示提供给日志的额外细节 | |
–follow或-f | 按日志输出 | |
–since | 从某个时间开始显示,例如2021-08-15T12:23:37 | |
–tail | all | 从日志末尾多少行开始显示 |
–timestamps或-t | 显示时间戳 | |
–until | 打印某个时间以前的日志,例如 2021-08-15T12:23:37 |
查看容器中的进程
查看docker 容器内部进程信息
docker top 容器id
查看容器元数据(很重要)
获取容器/镜像的元数据
docker inspect 容器id
此命令可以查看该容器的各种配置
runoob@runoob:~$ docker inspect mysql:5.6
[
{
"Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec",
"RepoTags": [
"mysql:5.6"
],
"RepoDigests": [],
"Parent": "",
"Comment": "",
"Created": "2016-05-24T04:01:41.168371815Z",
"Container": "e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54",
"ContainerConfig": {
"Hostname": "b0cf605c7757",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"3306/tcp": {}
},
..............
进入当前正在运行的容器
我们的容器通常是使用后台运行的,需要进入容器修改一些配置
方式一:
docker exec 容器id /bin/bash
方式二:
docker attcah 容器id
区别:
docker exec 容器id /bin/bash #进入容器开启一个新的终端,可以在里面操作(常用)
docker attcah 容器id #进入容器正在运行的终端,不会启动新的进程
从容器copy 文件到主机
docker cp 容器id:容器内路径 目的主机路径
提交镜像
commit镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]