容器创建与查看常用命令

1、操作’docker进程’相关指令

查看docker 版本
docker -v
查看docker 服务端与客户端版本详情
docker version
查看docker 帮助命令
docker --help
设置默认开机启动
systemctl enable docker
启动docker进程
systemctl start docker
重启docker进程
systemctl restart docker
关闭docker进程
systemctl stop docker
查看docker运行状态
systemctl status docker

2、操作’防火墙’相关指令

启动防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
检查防火墙状态
systemctl status firewalld

3、操作’镜像’相关指令

查看本地的镜像
docker images
搜索镜像,以tomcat为例,tomcat是镜像名字(注意不要写错)
docker search 镜像名字(如:tomcat)
    参数说明:
    NAME: 表 示 镜 像 的 名 称 。
    DESCRIPTION: 表 示 镜 像 的 简 要 描 述 。
    STARS:表示用户对镜像的评分,评分越高越可以放心使用。
    OFFICIAL: 是 否 为官 方 镜 像 。
    AUTOMATED:是否使用了自动构建。
找到对应的镜像,拉取 pull(默认拉取最新版本)
注:如果没网,可以离线下载传到指定位置。
docker pull 镜像名字(如:tomcat)	   # 默认最新版本
docker pull 镜像名字(如:tomcat:7)   # 指定版本7
删除镜像(删除之前,必须要停止容器,否则会报错)
docker rmi  镜像名字或镜像ID
把镜像打包成文件,以tomcat为例
docker save -o tomcat.tar tomcat
把镜像文件放到其他电脑,其他人变成镜像使用,以tomcat.tar为例
docker load -i tomcat.tar

4、操作’容器’相关指令

创建容器
1、只创建不启动
docker create tomcat                 # 只创建不启动,容器的name是随机生成的
docker create --name=Tomcat1 tomcat  # 只创建不启动,容器的name是指定的
    docker ps -a # 查看所有容器
    发现创建的容器并未运行,处于停止状态。

2、创建并启动(后台型容器:在后台运行)
docker run --name nginx5 -d -p 8082:80 nginx
    # nginx5        # 容器名称
    # -p 8082:80    # 端口隐射,表示将宿主机的8082端口映射到容器的80端口
    # nginx         # 镜像名称
    # -d            # 在后台运行
    注:
    运行成功后,在浏览器中输入 http://虚拟机IP:8082 就能看到 nginx 的默认页面了。(8082:宿主机端口)

3、创建并启动(交互型容器:进入容器内部命令行终端界面)
docker run -it --name=Tomcat3 tomcat /bin/bash
    # -i            # 运行容器
    # -t            # 进入命令行
    # -it           # 容器启动后,进入命令行
    # Tomcat3       # 容器名称
    # tomcat        # 镜像名称
    注:
    该命令执行完后,会打开一个输入终端,我们就可以在这个终端里愉快的操作ubuntu了。想要退出该终端,只需要输入exit命令即可。
查看容器
docker ps 		# 查看正在运行的容器
docker ps -a	# 查看所有的容器
docker ps -l    # 查看最近创建的1个容器
docker ps -n=X  # 查看最新创建的X个容器
docker ps |grep 关键字(容器名称/ID/其他字段)  # 筛选查询
启动/运行容器
docker start 容器名字或容器ID
重启容器
docker restart 容器名字或容器ID
停止容器
docker stop 容器名字或容器ID
启动容器时关联其他容器  --link 容器名称
docker run -di --name=Tomcat2 -p 8081:8080 --link mysql --link redis --link rabbitmq
删除容器
docker rm 容器名字或容器ID 	    # 删除没有运行的容器
docker rm -f 容器名字或容器ID      # 删除在运行的容器  -f:强制删除
停止所有的容器
docker stop $(docker ps -a -q)  # docker ps -a -q会列出所有容器的id,供rm命令删除
删除所有的容器(先停止所有的容器)
docker rm $(docker ps -a -q)
进入容器内部命令行终端界面
docker exec -it 容器名字或容器ID /bin/bash

进入容器内部命令行终端界面(-urgot:以管理员的权限进入)
docker exec -urgot -容器名字或容器ID 33 /bin/bash
退出容器
exit
查看容器所有详细信息(容器id、容器名、环境变量、运行命令、主机配置、网络配置以及数据卷配置等信息)
docker inspect 容器名字或容器ID

结果:
[root@localhost lib]# docker inspect 13e113432ef9
[
    {
        "Id": "13e113432ef9be36894b44b256bfdf0f1d1dd50f82dbf7a1ff968d5ac8002635",
        "Created": "2022-07-04T09:52:13.680830965Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 28669,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-07-04T09:52:14.51438729Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85",
        "ResolvConfPath": "/var/lib/docker/containers/13e113432ef9be36894b44b256bfdf0f1d1dd50f82dbf7a1ff968d5ac8002635/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/13e113432ef9be36894b44b256bfdf0f1d1dd50f82dbf7a1ff968d5ac8002635/hostname",
        "HostsPath": "/var/lib/docker/containers/13e113432ef9be36894b44b256bfdf0f1d1dd50f82dbf7a1ff968d5ac8002635/hosts",
        "LogPath": "/var/lib/docker/containers/13e113432ef9be36894b44b256bfdf0f1d1dd50f82dbf7a1ff968d5ac8002635/13e113432ef9be36894b44b256bfdf0f1d1dd50f82dbf7a1ff968d5ac8002635-json.log",
        "Name": "/nginx5",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {
                "80/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8082"
                    }
                ]
            },
            "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/bbee89e9c0018a8b02fc1339cbfe9e0d60536e0cb40ecdcc79f5134454354205-init/diff:/var/lib/docker/overlay2/97eb6dcdeb4ec6144b41b4f4c0668241565c12081bb44e5277b4b37ccf609fca/diff:/var/lib/docker/overlay2/490d51593582bbf58003ef57b4689f8646f3d59bd724966737c3b75bca6fab50/diff:/var/lib/docker/overlay2/937cf9aa02a55c0266e8d2f791513dc4cae51023ba4fa08ff624d6d088a67b45/diff:/var/lib/docker/overlay2/7826ac0ec02f436e957eef77cb91cefad0beb4cc38fa67193fe617ff1408ed6f/diff:/var/lib/docker/overlay2/199e9ed886cc80d84e05671cc9c571ac5bbbc1c819a2269b1c21dbf9fb2dd23f/diff:/var/lib/docker/overlay2/4fffbc7843ce81ed38b2025ae03b45fb80b50b7eddd8efa5a28dcbc8ed5c57e1/diff",
                "MergedDir": "/var/lib/docker/overlay2/bbee89e9c0018a8b02fc1339cbfe9e0d60536e0cb40ecdcc79f5134454354205/merged",
                "UpperDir": "/var/lib/docker/overlay2/bbee89e9c0018a8b02fc1339cbfe9e0d60536e0cb40ecdcc79f5134454354205/diff",
                "WorkDir": "/var/lib/docker/overlay2/bbee89e9c0018a8b02fc1339cbfe9e0d60536e0cb40ecdcc79f5134454354205/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "13e113432ef9",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.21.5",
                "NJS_VERSION=0.7.1",
                "PKG_RELEASE=1~bullseye"
            ],
            "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": "d7c55de9dda1c8a4cafe908f70471e49ad29923125c40e4fa427338a8fb75c25",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8082"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "8082"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/d7c55de9dda1",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "d77543c6a4d4ab1ee3684f8878024be4eeaed79ce81b1559b805e3fdc3bceafa",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.3",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:03",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "e28202de942a6dbcee630f0bf0961816be7cf25c97ac982398f0a1a23ee6d711",
                    "EndpointID": "d77543c6a4d4ab1ee3684f8878024be4eeaed79ce81b1559b805e3fdc3bceafa",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:03",
                    "DriverOpts": null
                }
            }
        }
    }
]
查看容器运行状态
docker inspect -f='{{.State.Running}}' nginx5

[root@localhost lib]# docker inspect -f='{{.State.Running}}' nginx5
true
查看容器ip地址
docker inspect -f='{{.NetworkSettings.IPAddress}}' nginx5

[root@localhost lib]# docker inspect -f='{{.NetworkSettings.IPAddress}}' nginx5
172.17.0.3
查看容器名、容器id
docker inspect -f='{{.Name}} {{.ID}}' nginx5

[root@localhost lib]# docker inspect -f='{{.Name}} {{.ID}}' nginx5
/nginx5 13e113432ef9be36894b44b256bfdf0f1d1dd50f82dbf7a1ff968d5ac8002635
查看容器主机信息
docker inspect -f='{{.HostConfig}}' nginx5

[root@localhost lib]# docker inspect -f='{{.HostConfig}}' nginx5
{[]  {json-file map[]} default map[80/tcp:[{ 8082}]] {no 0} false  [] [] [] host [] [] [] [] [] private  [] 0  false false false [] map[] map[]   67108864 map[] runc [0 0]  {0 0 0  0 [] [] [] [] [] 0 0 0 0   [] [] [] 0 0 0 0 <nil> 0xc0002d8ce4 <nil> [] 0 0 0 0} [] [/proc/asound /proc/acpi /proc/kcore /proc/keys /proc/latency_stats /proc/timer_list /proc/timer_stats /proc/sched_debug /proc/scsi /sys/firmware] [/proc/bus /proc/fs /proc/irq /proc/sys /proc/sysrq-trigger] <nil>}
查看容器进程
使用docker top XXX命令可以查看容器中正在运行的进程,首先确保容器已经启动,然后执行docker top命令。
docker top nginx5

[root@localhost lib]# docker top nginx5
UID         PID      PPID   C      STIME     TTY  TIME          CMD
root       28669     28651   0     17:52     ?    00:00:00      nginx: master process nginx -g daemon off;
101        28718     28669   0     17:52     ?    00:00:00      nginx: worker process
查看容器的挂载目录
docker inspect 容器ID | grep Mounts -A 20
    # Mounts :属性(docker inspect 容器名字或容器ID :可以查看所有属性)
    # 20 :显示20行

5、操作’日志’相关指令