后台启动容器
docker run -d 容器名
//如果容器内没有任何服务会自动停止
查看容器日志
docker logs [OPTIONS] 容器ID
#可选参数
--details 显示提供给日志的额外详细信息
-f 跟踪日志输出
--tail n 从日志的末尾开始显示的行数,默认all
-t 显示时间戳
#启动容器并后台执行一个死循环
[root@localhost ~]# docker run --name testCentos7 -d centos:7 /bin/bash -c "while true; do $(echo date); sleep 1; done"
9f081f3296603d398b18b7a6fbc830fbd1bb6625979b03c7817944ab57fd16f9
#查看当前正在运行的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f081f329660 centos:7 "/bin/bash -c 'while…" 7 minutes ago Up 7 minutes testCentos7
#从最后10行开始动态显示带时间戳的日志
[root@localhost ~]# docker logs -ft --tail 10 9f081f329660
2021-01-21T10:48:10.093339400Z Thu Jan 21 10:48:10 UTC 2021
2021-01-21T10:48:11.096798400Z Thu Jan 21 10:48:11 UTC 2021
2021-01-21T10:48:12.099495700Z Thu Jan 21 10:48:12 UTC 2021
2021-01-21T10:48:13.103214300Z Thu Jan 21 10:48:13 UTC 2021
2021-01-21T10:48:14.106671000Z Thu Jan 21 10:48:14 UTC 2021
2021-01-21T10:48:15.109254600Z Thu Jan 21 10:48:15 UTC 2021
2021-01-21T10:48:16.111635700Z Thu Jan 21 10:48:16 UTC 2021
2021-01-21T10:48:17.114416800Z Thu Jan 21 10:48:17 UTC 2021
2021-01-21T10:48:18.122134400Z Thu Jan 21 10:48:18 UTC 2021
2021-01-21T10:48:19.125389000Z Thu Jan 21 10:48:19 UTC 2021
查看容器进程
docker top 容器ID
[root@localhost ~]# docker run --name Centos7 -d centos:7 /bin/bash -c "while true; do $(echo date); sleep 1; done"
af63aab2b0778323d7fe3cd423254e72ded32f62f761226700a47de2295529d2
[root@localhost ~]# docker top af63aab2b0778323d7fe3cd423254e72ded32f62f761226700a47de2295529d2
UID PID PPID C STIME TTY TIME CMD
root 26091 26071 0 18:59 ? 00:00:00 /bin/bash -c while true; do date; sleep 1; done
root 26186 26091 0 18:59 ? 00:00:00 sleep 1
查看容器元数据
docker inspect 容器ID
[root@localhost ~]# docker inspect 8652b9f0cb4c
[
{
"Id": "sha256:8652b9f0cb4c0599575e5a003f5906876e10c1ceb2ab9fe1786712dac14a50cf",
"RepoTags": [
"centos:7"
],
"RepoDigests": [
"centos@sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e"
],
"Parent": "",
"Comment": "",
"Created": "2020-11-14T00:20:04.644613188Z",
"Container": "b454ba2d27117a169c53eb4c14faf363cb6aaca84df43408581fb748cc2bf796",
"ContainerConfig": {
"Hostname": "b454ba2d2711",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"/bin/bash\"]"
],
"Image": "sha256:05e222a9fa848efd0d4dd0969ea27c789a1eff8445d25c4f13f932ead6e3b674",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.label-schema.build-date": "20201113",
"org.label-schema.license": "GPLv2",
"org.label-schema.name": "CentOS Base Image",
"org.label-schema.schema-version": "1.0",
"org.label-schema.vendor": "CentOS",
"org.opencontainers.image.created": "2020-11-13 00:00:00+00:00",
"org.opencontainers.image.licenses": "GPL-2.0-only",
"org.opencontainers.image.title": "CentOS Base Image",
"org.opencontainers.image.vendor": "CentOS"
}
},
"DockerVersion": "19.03.12",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/bash"
],
"Image": "sha256:05e222a9fa848efd0d4dd0969ea27c789a1eff8445d25c4f13f932ead6e3b674",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.label-schema.build-date": "20201113",
"org.label-schema.license": "GPLv2",
"org.label-schema.name": "CentOS Base Image",
"org.label-schema.schema-version": "1.0",
"org.label-schema.vendor": "CentOS",
"org.opencontainers.image.created": "2020-11-13 00:00:00+00:00",
"org.opencontainers.image.licenses": "GPL-2.0-only",
"org.opencontainers.image.title": "CentOS Base Image",
"org.opencontainers.image.vendor": "CentOS"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 203936249,
"VirtualSize": 203936249,
"GraphDriver": {
"Data": {
"MergedDir": "/var/lib/docker/overlay2/59ae1c03a2f70f7763b9d50e8ca6ad3f55b4bceb782eb290608aa10b11f54d9f/merged",
"UpperDir": "/var/lib/docker/overlay2/59ae1c03a2f70f7763b9d50e8ca6ad3f55b4bceb782eb290608aa10b11f54d9f/diff",
"WorkDir": "/var/lib/docker/overlay2/59ae1c03a2f70f7763b9d50e8ca6ad3f55b4bceb782eb290608aa10b11f54d9f/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:174f5685490326fc0a1c0f5570b8663732189b327007e47ff13d2ca59673db02"
]
},
"Metadata": {
"LastTagTime": "0001-01-01T00:00:00Z"
}
}
]
进入当前正在运行的容器
docker exec -it 容器ID
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
af63aab2b077 centos:7 "/bin/bash -c 'while…" 5 minutes ago Up 5 minutes Centos7
[root@localhost ~]# docker exec -it af63aab2b077 /bin/bash
[root@af63aab2b077 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
方式二
docker attach af63aab2b077
正在执行的代码...
docker exec 开启一个新的终端,可以在里面操作(常用)
docker attach 进入正在运行的终端,不会创建新的进程
容器文件拷贝到主机
docker cp 容器ID:容器内文件 目的主机路径
[root@localhost ~]# docker run -it centos:7 /bin/bash
[root@0cff857eaf86 /]# cd /home
[root@0cff857eaf86 home]# touch test.java
[root@0cff857eaf86 home]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 21 11:20 test.java
//ctrl + p + Q后台退出容器
[root@0cff857eaf86 home]# [root@localhost ~]# ls
3000 anaconda-ks.cfg
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0cff857eaf86 centos:7 "/bin/bash" 5 minutes ago Up 5 minutes clever_euclid
[root@localhost ~]# docker cp 0cff857eaf86:/home/test.java /root
[root@localhost ~]# ls
3000 anaconda-ks.cfg test.java
这是手动操作,以后使用 -v 卷技术可以实现
原文出处: https://www.kuangstudy.com/bbs/1352801874335571969