查看容器版本

docker version

[root@node1 ~]# docker version
Client: Docker Engine - Community
Version: 20.10.9
API version: 1.41
Go version: go1.16.8
Git commit: c2ea9bc
Built: Mon Oct 4 16:08:14 2021
OS/Arch: linux/amd64
Context: default
Experimental: true Server: Docker Engine - Community
Engine:
Version: 20.10.9
API version: 1.41 (minimum version 1.12)
Go version: go1.16.8
Git commit: 79ea9d3
Built: Mon Oct 4 16:06:37 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.11
GitCommit: 5b46e404f6b9f661a205e28d59c982d3634148f8
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0

运行容器

docker run ‘image’ 或者docker container run ‘image’

如果docker run 后面指定的镜像没有加tag,那么默认就会运行tag为latest的镜像。

交互式运行容器

docker run -i -t  镜像名

-i 表示交互式

-t 表示为容器开启一个终端

[root@node1 ~]# docker run -i -t centos
[root@5fd531998278 /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.1 0.2 12036 2088 pts/0 Ss 06:22 0:00 /bin/bash
root 15 0.0 0.1 44652 1780 pts/0 R+ 06:22 0:00 ps aux 

以后台的形式运行容器(最常使用的)

docker run -dt “image” “command”  后面的command会替代image中构建的最后一个命令

-d 参数是后台运行

[root@node1 ~]# docker run -dt centos bash
fec14b595a81d8c47f5e81035c883b75147a3f52da51eb8b79298dede4c72945
[root@node1 docker]# docker run -dt --name web nginx  bash
7c741b579a562d264a4bd0d24ed84405c19476875f579d2f8dc230e183349ec9
[root@node1 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c741b579a56 nginx "/docker-entrypoint.…" 7 seconds ago Up 7 seconds 80/tcp web
b713aabd323d centos "/bin/bash" 5 minutes ago Up 5 minutes dazzling_raman

  

进入一个已运行的容器

docker exec  -it ‘容器id或NAMES’  ‘command’

[root@node1 docker]# docker exec -it b713aabd323d bash
[root@b713aabd323d /]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 12036 1936 pts/0 Ss+ 14:11 0:00 /bin/bash
root 27 0.1 0.2 12036 2100 pts/1 Ss 14:18 0:00 bash
root 41 0.0 0.1 44652 1784 pts/1 R+ 14:19 0:00 ps aux

退出容器

exit

临时退出容器

ctrl+p+q

返回临时退出的容器

docker attach +容器的id

停止容器

docker stop + 容器id  正常停止一个容器

docker kill + 容器id  强行杀掉一个容器

上图中容器状态STATUS可以看到退出容器的状态码,docker stop +容器id停止的状态码为0,docker kill + 容器id停止的状态码是非零

重启容器

docker restart +容器id

查看运行的容器

docker ps

docker ps -q  只查看运行容器id

查看所有的容器,包括已退出的容器

docker ps -a

docker ps -aq    只查看所有容器的id

删除容器

docker container rm +容器id

默认情况下只能删除已经停止的容器,也可以加-f参数强行删除正在运行的容器(不建议)

查看容器log

docker logs

首先运行一个容器nginx,然后执行docker logs web 查看这个容器的日志

[root@node1 ~]# docker run -dt --name web nginx                           #启动一个指定名为web的nginx容器
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd9d8a5a355e nginx "/docker-entrypoint.…" 51 seconds ago Up 50 seconds 80/tcp web
fec14b595a81 centos "/bin/bash" 6 hours ago Up 6 hours condescending_benz
67c3f5089a59 centos "/bin/bash" 6 hours ago Up 6 hours zealous_greider
[root@node1 ~]# docker logs web #查看web的容器log
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/10/20 12:56:57 [notice] 1#1: using the "epoll" event method
2021/10/20 12:56:57 [notice] 1#1: nginx/1.21.3
2021/10/20 12:56:57 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/10/20 12:56:57 [notice] 1#1: OS: Linux 3.10.0-1062.el7.x86_64
2021/10/20 12:56:57 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/10/20 12:56:57 [notice] 1#1: start worker processes
2021/10/20 12:56:57 [notice] 1#1: start worker process 31

  

查看容器的进程

docker top 进程id或者 NAMES

[root@node1 ~]# docker top web
UID PID PPID C STIME TTY TIME CMD
root 12080 12061 0 20:56 pts/0 00:00:00 nginx: master process nginx -g daemon off;
101 12128 12080 0 20:56 pts/0 00:00:00 nginx: worker process

  

[root@node1 ~]# docker top condescending_benz
UID PID PPID C STIME TTY TIME CMD
root 11236 11218 0 17:11 pts/0 00:00:00 /bin/bash
[root@node1 ~]# docker top fec14b595a81
UID PID PPID C STIME TTY TIME CMD
root 11236 11218 0 17:11 pts/0 00:00:00 /bin/bash

  

查看容器内部的详细信息

docker inspect  web   #查看名为web的nginx容器详细信息 ,这个命令返回结果为json格式

[root@node1 ~]# docker inspect web
[
{
"Id": "cd9d8a5a355e21c423af1c53286af9e4670ec9457f0e22b1a68e0d699bcfa78f",
"Created": "2021-10-20T12:56:57.15455763Z",
"Path": "/docker-entrypoint.sh",
"Args": [
"nginx",
"-g",
"daemon off;"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 12080,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-10-20T12:56:57.915592015Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:87a94228f133e2da99cb16d653cd1373c5b4e8689956386c1c12b60a20421a02",
"ResolvConfPath": "/var/lib/docker/containers/cd9d8a5a355e21c423af1c53286af9e4670ec9457f0e22b1a68e0d699bcfa78f/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/cd9d8a5a355e21c423af1c53286af9e4670ec9457f0e22b1a68e0d699bcfa78f/hostname",
"HostsPath": "/var/lib/docker/containers/cd9d8a5a355e21c423af1c53286af9e4670ec9457f0e22b1a68e0d699bcfa78f/hosts",
"LogPath": "/var/lib/docker/containers/cd9d8a5a355e21c423af1c53286af9e4670ec9457f0e22b1a68e0d699bcfa78f/cd9d8a5a355e21c423af1c53286af9e4670ec9457f0e22b1a68e0d699bcfa78f-json.log",
"Name": "/web",
"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/c34d13e1617f850faa442b48ee067cee6b4c786617a68bc0f14efac09680cf5e-init/diff:/var/lib/docker/overlay2/916b4b09d26638d695f00d92703ea74c3ca25ec2b45553bbbfb8124b94c97d51/diff:/var/lib/docker/overlay2/646e9fdde9960bf6b7751d19d12921668857653cbcbe12ece1f8778560f26fac/diff:/var/lib/docker/overlay2/c23d2e4620ca9dad82d584da266ac08650339db8b0256cb0c6af396f6acf52c9/diff:/var/lib/docker/overlay2/0978fa2b8de789fe52c284e7189c672b1ae149a23a1120cac53764ca58ffc26a/diff:/var/lib/docker/overlay2/1806b9060674b511023a35cb7d2d0eb05f2819bc7af1e884ad6eb5bc21a98fb9/diff:/var/lib/docker/overlay2/0a4ab40a97f3191a3c1ff84f2653499dbf8a4f73f2b771750212eaf5a1355bca/diff",
"MergedDir": "/var/lib/docker/overlay2/c34d13e1617f850faa442b48ee067cee6b4c786617a68bc0f14efac09680cf5e/merged",
"UpperDir": "/var/lib/docker/overlay2/c34d13e1617f850faa442b48ee067cee6b4c786617a68bc0f14efac09680cf5e/diff",
"WorkDir": "/var/lib/docker/overlay2/c34d13e1617f850faa442b48ee067cee6b4c786617a68bc0f14efac09680cf5e/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "cd9d8a5a355e",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": true,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.21.3",
"NJS_VERSION=0.6.2",
"PKG_RELEASE=1~buster"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"Image": "nginx",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGQUIT"
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "7e0664529b4530566bb81f703c9ed5cb7c3d2a8d52922fafcd812fcf570a9953",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": null
},
"SandboxKey": "/var/run/docker/netns/7e0664529b45",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "a510f09a369fea8067cd1e9a5f13fc6b1905437246f386395aefa1e7b295651a",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.4",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:04",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "1e97883068f16a7653829f2adc3fa1da86d219b4ce00f9eac7d1c96b66a9aeee",
"EndpointID": "a510f09a369fea8067cd1e9a5f13fc6b1905437246f386395aefa1e7b295651a",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.4",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:04",
"DriverOpts": null
}
}
}
}
]
[root@node1 ~]#

docker inspect web

将主机文件拷贝到容器中

docker cp

将docker目录下的ubunto_latest_image.tar 拷贝到名为busy_buck的容器/目录下

[root@node1 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bb4aeab2410 centos "bash" About a minute ago Up About a minute busy_buck
[root@node1 docker]# ls
daemon.json key.json ubunto_latest_image.tar
[root@node1 docker]# docker cp ubunto_latest_image.tar busy_buck:/
[root@node1 docker]# docker attach 2bb4aeab2410
[root@2bb4aeab2410 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp ubunto_latest_image.tar usr var 

将容器文件拷贝到主机上

[root@node1 docker]# docker cp  dazzling_raman:/ubunto_latest_image.tar ./
[root@node1 docker]# ls
daemon.json key.json ubunto_latest_image.tar

  

docker容器生命周期管理的更多相关文章

  1. Docker 容器生命周期管理命令

    docker run 命令 -d: 后台运行容器,并返回容器ID: -i: 以交互模式运行容器,通常与 -t 同时使用: -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用: --name= ...

  2. 004-docker命令-容器生命周期管理、容器操作

    1.容器生命周期管理 docker run :创建一个新的容器并运行一个命令 语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明: - ...

  3. 存储-docker volume 生命周期管理(14)

    volume 生命周期管理 - 每天5分钟玩转 Docker 容器技术(44) Data Volume 中存放的是重要的应用数据,如何管理 volume 对应用至关重要.前面我们主要关注的是 volu ...

  4. Docker系列02: 容器生命周期管理 镜像&容器

    A) Docker信息1. 查看docker运行状态 systemctl status docker docker.service - Docker Application Container Eng ...

  5. Docker容器与镜像管理

    目录 容器管理 运行容器 容器的启停操作 容器导入导出 容器生命周期管理 容器资源限制 内存限制 CPU限制 io 限制 镜像管理 镜像命名规范 镜像基本操作 容器管理 运行容器 1.运行一个容器示例 ...

  6. Castle IOC容器组件生命周期管理

    主要内容 1.生命处理方式 2.自定义生命处理方式 3.生命周期处理 一.生命处理方式 我们通常创建一个组件的实例使用new关键字,这样每次创建出来的都是一个新的实例,如果想要组件只有一个实例,我们会 ...

  7. 理解Docker容器的进程管理

    摘要: Docker在进程管理上有一些特殊之处,如果不注意这些细节中的魔鬼就会带来一些隐患.另外Docker鼓励"一个容器一个进程(one process per container)&qu ...

  8. Docker容器集群管理之Swarm

    Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...

  9. 第 6 章 存储 - 044 - volume 生命周期管理

    volume 生命周期管理 1)备份 因为 volume 实际上是 host 文件系统中的目录和文件,所以 volume 的备份实际上是对文件系统的备份 例如:本地的Registry,所有镜像都存在/ ...

  10. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

随机推荐

  1. Filters in ASP.NET Core(Net6之过滤器)

    Filters in ASP.NET Core 如果觉得样式不好:跳转即可 (md文件复制过来有些样式会不一样) 原文地址:https://lifengying.site/archives/net6% ...

  2. Vuforial 使用小计

    1. 在使用扫图功能的时候, 上传图片审核处,要根据图片真实的宽度尺寸设置宽度. 2.做物体识别时,识别的物体最好是一个长方体或正方体,这样识别度高一些. 3.如果是其它物体识别要保证物体大一些,身体 ...

  3. Mac系统中安装Nginx

    ​ 一.前言 本文介绍一下,如何在Mac系统中安装Nginx,把详细过程记录下来,方便以后查看,也方便大家学习. 二.正文 1.安装 Homebrew homebrew是什么?它是Mac中的一款软件包 ...

  4. Mac Parallels Desktop篇 安装Windows 10

    Parallels Desktop安装Windows 10系统: 1.首先下载并安装Parallels Desktop ,下载 Windows 10 系统镜像 2.打开Parallels Deskto ...

  5. 均值、中值、高斯、non-local means算法详解

    文章仅为个人理解,如有不妥之处欢迎指正. 写几个常见的图像去噪滤波器. 1.均值滤波器 均值滤波器是最简单的图像平滑滤波器,其3*3的模板为 1 9 [ 1 1 1 1 1 1 1 1 1 ] \fr ...

  6. java poi技术基础案例

    基础 HSSF - 提供读写Microsoft Excel格式档案的功能.(03版本,处理xls) XSSF - 提供读写Microsoft Excel OOXML格式档案的功能.(07版本,处理xl ...

  7. wendows 批量修改文件后缀(含递归下级)

    for /r %%a in (*.jpg)do ren "%%a" "%%~na.png" //-- or :for /r %a in (*.jpg)do re ...

  8. Unity3D中实现按资源名称自动化命名打包AssetBundle

    首先把模型变成预制体 一般当需要打包成AssetBundle的资源不多时,可以自己通过AssetLabels窗口手动命名,然后再打包,但是当需要打包的资源过多时,一个一个的去手动编辑就特别的麻烦,因此 ...

  9. Docker 安装开发运行环境

    Centos7安装docker .参考官方网站 docker官方 1.1 使用以下命令即可 yum install -y yum-utils device-mapper-persistent-data ...

  10. mysql5.7 不兼容问题

    通过navicat工具导入psc数据库备份文件,报错如下,mysql版本5.7 执行如下语句不通过 DROP TABLE IF EXISTS `guard_user`; CREATE TABLE `g ...