查看容器版本

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

  

最新文章

  1. NTP时间同步
  2. 局部(或全局)设置&lt;a&gt;标签的target属性
  3. JsonUtil对象与json互转
  4. vim plugin 原理
  5. C/C++易错点
  6. JSP导出Excel文件
  7. 1, sync_with_stdio(), tie()的应用
  8. VK Cup 2017 - Квалификация 2
  9. Android ROM包定制(解包,增删模块,打包)
  10. Python读写文件的几种方式
  11. 【洛谷P3455】ZAP-Queries
  12. LevelDB源码分析-Compact
  13. MyEclipse中引用的maven配置文件只访问私服的配置
  14. 19-Python3 函数
  15. Spring整合Redis&amp;JSON序列化&amp;Spring/Web项目部署相关
  16. 深入了解MyBatis二级缓存
  17. Cloudera Manager 4.6 安装部署hadoop CDH集群
  18. C/C++嵌入式开发面试题
  19. form表单有条件的提交
  20. 安装Caffe时出现的错误

热门文章

  1. linux系统过滤文件,并且通过时间对过滤的文件排序
  2. iPhone添加节假日日历地址
  3. Centos 升级glibc 亲测好用
  4. 【个人笔记】CentOS 安装 Docker CE
  5. SpringBoot代理图片、文件等路径
  6. 【SSO单点系列】(6):CAS4.0 之中文乱码
  7. nacos启动失败
  8. C++ Gui Qt4 第二章
  9. python_lib_0001_decorator_print_log
  10. ksfitappUI自动化(准备+安装环境)