Otros comandos comúnmente utilizados en los conceptos básicos de Docker

contenido

Inicie el contenedor en segundo plano:

ventana acoplable ejecutar -d ID de contenedor

Ver los registros

contenedor de registros docker #Se recomienda agregar parámetros para que los registros se vean más claramente

Ver información del proceso en el contenedor

Id. de contenedor superior de la ventana acoplable

Ver metadatos de imágenes o contenedores

docker inspeccionar ID de imagen o ID de contenedor

en el contenedor actualmente en ejecución

docker exec -it ID de contenedor /bin/bash #common

docker adjuntar ID de contenedor

Copie archivos del contenedor al host

docker cp container ID: la ruta del archivo en el contenedor, la ruta del host donde se almacena el archivo

enviar contenedor de imagen a imagen


Inicie el contenedor en segundo plano:

ventana acoplable ejecutar -d ID de contenedor

#后台启动容器命令:
docker run -d  容器;ID

[root@localhost ~]# docker run -d centos
a785e61eac2cd9adc784e018ca7985652af8e7f3e0069e17ac6512c682c857d1
[root@localhost ~]# docker ps    
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

#问题:虽然后台启动了容器,可是docker ps 并未发现启动的容器。

#解释:
#常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker没有发现应用,就会自动停止
#nginx,容器启动后后,发现自己没有提供服务,就会立刻停止,就是没有程序。

Ver los registros

contenedor de registros docker         #Se recomienda agregar parámetros para que los registros se vean más claramente

#查看日志命令:
docker logs -tf --tail 容器       

#可接参数:
-t    显示时间
-f    显示全部日志
#tail number    后面可以接想看的日志条数,比如想看10条日志 --tail 10

#后台运行容器,让该容器每隔一秒运行一次脚本,就不会停止容器了
[root@localhost ~]# docker run -d centos /bin/sh -c "while true;do echo huage;sleep 1;done"
2d51be42dba9f460db52548106741cc13ecd8afeb30829215c8b3fbec278235b
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
2d51be42dba9   centos    "/bin/sh -c 'while t…"   7 seconds ago   Up 6 seconds             practical_lamarr

#启动容器后,容器不断执行脚本,我们可以用查看日志命令,查看日志:
[root@localhost ~]# docker logs -tf --tail 8 2d51be42dba9    #查看最近8条日志,带日志时间。
2022-04-16T03:04:45.112916086Z huage
2022-04-16T03:04:46.115966803Z huage
2022-04-16T03:04:47.118753294Z huage
2022-04-16T03:04:48.121216822Z huage
2022-04-16T03:04:49.122943682Z huage
2022-04-16T03:04:50.125310862Z huage
2022-04-16T03:04:51.127814908Z huage
2022-04-16T03:04:52.129570962Z huage

#不带参数执行命令:
[root@localhost ~]# docker logs 2d51be42dba9
huage
huage
huage
huage
huage
huage
#这里没有截取全部日志,因为不带参数会把启动容器后所有日志都显示出来,很长,且没有时间,不方便查阅

Ver información del proceso en el contenedor

Id. de contenedor superior de la ventana acoplable

[root@localhost ~]# docker top 2d51be42dba9
UID                 PID                 PPID                C                   STIME               TTY
TIME                CMD
root                13161               13141               1                   11:23               ?
00:00:00            /bin/sh -c while true;do echo huage;sleep 1;done
root                13191               13161               0                   11:23               ?
00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1

Ver metadatos de imágenes o contenedores

docker inspeccionar ID de imagen o ID de contenedor

Se puede ver diversa información sobre el contenedor o la imagen a través de este comando

[root@localhost ~]# docker inspect 2d51be42dba9
[
    {        #我们在这可以发现,外面显示的容器ID就是这整个ID的前几位。
        "Id": "2d51be42dba9f460db52548106741cc13ecd8afeb30829215c8b3fbec278235b",
        "Created": "2022-04-16T03:01:43.360845441Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",    
            "while true;do echo huage;sleep 1;done"  #这里显示出了我们之前编写的shell脚本
  
        ],
        "State": {
            "Status": "running",    #正在运行状态
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 13161,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-04-16T03:23:18.689919295Z",
            "FinishedAt": "2022-04-16T03:22:57.476629666Z"
        },
        "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
        "ResolvConfPath": "/var/lib/docker/containers/2d51be42dba9f460db52548106741cc13ecd8afeb30829215c8b3fbec278235b/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/2d51be42dba9f460db52548106741cc13ecd8afeb30829215c8b3fbec278235b/hostname",
        "HostsPath": "/var/lib/docker/containers/2d51be42dba9f460db52548106741cc13ecd8afeb30829215c8b3fbec278235b/hosts",
        "LogPath": "/var/lib/docker/containers/2d51be42dba9f460db52548106741cc13ecd8afeb30829215c8b3fbec278235b/2d51be42dba9f460db52548106741cc13ecd8afeb30829215c8b3fbec278235b-json.log",
        "Name": "/practical_lamarr",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/86c16bdf9bea13c6ff37a58a482155df5522073064ea006ac827620e7b7d1e05-init/diff:/var/lib/docker/overlay2/dfe67e3d0e2c320b961f27663d07cfd21ab51f699d623e1a72de1c3d2bdffd42/diff",
                "MergedDir": "/var/lib/docker/overlay2/86c16bdf9bea13c6ff37a58a482155df5522073064ea006ac827620e7b7d1e05/merged",
                "UpperDir": "/var/lib/docker/overlay2/86c16bdf9bea13c6ff37a58a482155df5522073064ea006ac827620e7b7d1e05/diff",
                "WorkDir": "/var/lib/docker/overlay2/86c16bdf9bea13c6ff37a58a482155df5522073064ea006ac827620e7b7d1e05/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "2d51be42dba9",        #容器名字
            "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",
                "while true;do echo huage;sleep 1;done"
            ],
            "Image": "centos",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20210915",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "NetworkSettings": {        #下面就是一些docker网络的一些参数
            "Bridge": "",
            "SandboxID": "76423c2069c16775b9a55969218939044773ee3be61ad89d25f26577a3e4e377",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/76423c2069c1",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "63ebd4c3e9d14e8e9d9648a238f3f1d5a5e3b32faec654150fe4eb029ca74be6",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "c33e155773ca2923ab5104f32955b39bfa9e93b96c3ee5bdce282a773b84120c",
                    "EndpointID": "63ebd4c3e9d14e8e9d9648a238f3f1d5a5e3b32faec654150fe4eb029ca74be6",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

en el contenedor actualmente en ejecución

docker exec -it ID de contenedor /bin/bash #common

"docker exec" requiere al menos 2 argumentos.

Este comando abrirá una nueva terminal después de ingresar al contenedor, que es más conveniente de operar.

#我们通常容器都是使用后台运行的方式,有时候需要修改一些配置,就需要进入容器。
#命令:
docker exec-it 容器ID bashShell

#测试
#以交互模式进入容器,然后运行bash
[root@7f497e338757 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 09:09 pts/0    00:00:00 /bin/bash
root         50      0  0 09:23 pts/1    00:00:00 /bin/bash
root         65     50  0 09:23 pts/1    00:00:00 ps -ef

docker adjuntar ID de contenedor

Docker Attach solo toma un parámetro

Este comando no abrirá una nueva terminal al ingresar al contenedor, sino que ingresará a la terminal donde se ejecutó el comando antes, lo cual es un inconveniente.

#命令
docker attach 容器ID
#测试
[root@localhost ~]# docker attach 7f497e338757
[root@7f497e338757 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 09:09 pts/0    00:00:00 /bin/bash
root         50      0  0 09:23 pts/1    00:00:00 /bin/bash
root         66      1  0 09:27 pts/0    00:00:00 ps -ef
docker exec    #进入容器后开启一个新的终端,可以在里面操作。(常用)
docker attach    #进入容器正在执行的终端,不会启动新的进程。

Copie archivos del contenedor al host

docker cp container ID: la ruta del archivo en el contenedor, la ruta del host donde se almacena el archivo

ventana acoplable cp 3e954c247eed:/inicio/hua.txt /inicio

#测试:
#在容器内创建一个文件
[root@localhost ~]# docker attach 3e954c247eed
[root@3e954c247eed /]# cd /home
[root@3e954c247eed home]# touch hua.txt
[root@3e954c247eed home]# ls
hua.txt
#退出容器,将容器内的文件拷贝到主机上
[root@3e954c247eed home]# exit

#将容器home目录的hua.txt文件拷贝到主机的home里
[root@localhost ~]# docker cp 3e954c247eed:/home/hua.txt /home
[root@localhost ~]# cd /home
[root@localhost home]# ls
hua  hua.txt

注意:拷贝时要退出容器再使用拷贝命令。容器内使用docker命令会报错。

enviar contenedor de imagen a imagen

docker commit confirma el contenedor para que se convierta en una nueva copia

#使用方法
docker commit -m="提交的描述信息" -a="作者" 依赖的容器id 取个生成的镜像名:[TAG标签]

参数:

-m  该镜像的描述,描述镜像的特点和功能等
-a  可以添加镜像的作者
使用这些参数要加 = 号

Commit consiste en empaquetar la capa de la imagen y la capa del contenedor en una imagen completa y empaquetar el estado actual del contenedor en una imagen.

Si desea guardar el estado del contenedor actual, puede enviarlo mediante confirmación u obtener una imagen. Al igual que una instantánea tomada por una máquina virtual, si desea volver al estado del contenedor anterior, puede ejecutar Docker directamente para crear la imagen como un contenedor.

Supongo que te gusta

Origin blog.csdn.net/weixin_53466908/article/details/124210129
Recomendado
Clasificación