翼度科技»论坛 云主机 LINUX 查看内容

001-docker基本命令

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
Docker的常用命令

帮助命令
  1. docker version                         # docker版本
  2. docker info                         # 显示docker的系统信息,包括镜像和容器的数量
  3. docker [命令] --help     # 查看某个具体的命令
复制代码
镜像命令

查看下载的所有镜像
  1. # docker images
  2. REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
  3. mysql                     5.6                 8de95e6026c3        20 hours ago        302MB
  4. redis                     latest              36304d3b4540        12 days ago         104MB
  5. mysql                     latest              30f937e841c8        2 weeks ago         541MB
  6. centos/mysql-57-centos7   latest              f83a2938370c        8 months ago        452MB
  7.                        
复制代码
解释
REPOSITORY 镜像的仓库名
TAG 镜像的标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像的大小
可选项
Options:
-a, --all             # 列出所有镜像
-q, --quiet           # 只显示镜像ID
搜索镜像
  1. # docker search jdk
  2. NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
  3. ubuntu                           Ubuntu is a Debian-based Linux operating sys…   15147     [OK]
  4. websphere-liberty                WebSphere Liberty multi-architecture images …   290       [OK]
  5. ubuntu-upstart                   DEPRECATED, as is Upstart (find other proces…   112       [OK]
  6. neurodebian                      NeuroDebian provides neuroscience research s…   94        [OK]
  7. ubuntu/nginx                     Nginx, a high-performance reverse proxy & we…   64
  8. open-liberty                     Open Liberty multi-architecture images based…   55        [OK]
  9. ubuntu-debootstrap               DEPRECATED; use "ubuntu" instead                49        [OK]
  10.             
  11. # 可选项,通过收藏来过滤
  12. --filter=stars=3000 # 搜索出来的镜像收藏就是大于3000的
复制代码
下载镜像
  1. # docker pull
  2. [root@CZP ~] # docker pull nginx [:tag]
  3. Using default tag: latest # 如果不写tag 默认使用最新版本
  4. latest: Pulling from library/nginx
  5. 8559a31e96f4: Pull complete  # 分层下载,docker image核心 联合文件系统
  6. 8d69e59170f7: Pull complete
  7. 3f9f1ec1d262: Pull complete
  8. d1f5ff4f210d: Pull complete
  9. 1e22bfa8652e: Pull complete
  10. Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133 # 签名
  11. Status: Downloaded newer image for nginx:latest
  12. docker.io/library/nginx:latest # 真实地址
  13. # docker pull nginx 等价于 dicker pull docker.io/library/nginx:latest
  14. #指定版本下载
复制代码
删除镜像
  1. # docker rmi
  2. # 删除指定的容器
  3. [root@CZP ~]# docker rm -f 8de95e6026c3
  4. # 删除全部的容器
  5. [root@CZP ~]# docker rm -f $(docker -ap)
  6. # 删除包含none的容器
  7. docker rmi $(docker images | grep "none" | awk '{print $3}')
复制代码
容器命令

说明 : 有了镜像才可以创建容器,
  1. docker pull [image]
复制代码
新建容器并启动
  1. # docker run  [可选参数] image
  2. # 参数说明
  3. --name=""  容器名字 用于区分容器
  4. -d         后台方式运行
  5. -it        使用交互方式运行,进入容器查看内容
  6. -p               指定容器的端口 -p 80:8080  主机端口:容器端口
  7. -P(大写)    随机指定容器的端口
复制代码
列出所有运行的容器
  1. # docker ps 命令        (不加参数)列出当前正在运行的容器
  2. # 参数说明
  3. -a                # 列出当前正在运行的容器+历史运行过的容器
  4. -n=?        # 显示最近创建的容器
  5. -q                # 只显示容器的编号
  6. [root@CZP ~]# docker ps
  7. CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  8. [root@CZP ~]# docker ps -a
  9. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
  10. 919e58ff5521        redis               "docker-entrypoint.s…"   20 hours ago        Exited (0) 16 hours ago                       redis
复制代码
退出容器
  1. exit                  # 直接容器停止并退出
  2. ctrl + p + q # 直接退出容器
复制代码
删除容器
  1. docker rm 容器id                                                # 删除指定容器(可一次删除多个,各id之间用空格隔开)
  2. docker rm -f[递归] $(docker ps -aq)         # 递归删除所有的容器
  3. docker ps -a | xargs docker rm                  # 递归删除所有的容器
复制代码
启动和停止容器的操作
  1. docker start 容器id                  # 启动容器
  2. docker restart 容器id          # 重启容器
  3. docker stop 容器id                # 停止当前正在运行的容器
  4. docker kill 容器id                 # 强制停止当前容器
复制代码
常用的其他命令

后台启动容器
  1. # 命令docker run -d 镜像名
  2. # 常见的坑: docker容器后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
  3. #nginx, 容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
复制代码
查看日志
  1. docker logs -f -t --tail 容器
  2. # 参数说明
  3.         -tf                                # 显示日志
  4.         --tail number         # 要显示的日志条数
  5.        
  6.     [root@localhost ~]# docker logs -tf --tail 10 centosv1
  7.     2021-06-26T01:38:12.739000465Z [root@ef24fc0af36a /]# docker ps
  8.     2021-06-26T01:38:12.739180686Z bash: docker: command not found
  9.     2021-06-26T01:38:21.504914487Z [root@ef24fc0af36a /]# exit
  10.     2021-06-26T01:38:21.504931415Z exit
  11.        
复制代码
查看容器中进程信息
  1. docker top 容器id
  2. [root@CZP ~]# docker top 63d4c4115212
  3. UID                 PID                 PPID                C                   STIME
  4. polkitd             2319                2301                0                   12:33
复制代码
查看镜像元数据
  1. # 命令
  2. docker inspect 容器id
  3. # 测试
  4. [root@CZP ~]# docker inspect 63d4c4115212
  5. [
  6.     {
  7.         "Id": "63d4c41152126cae276b69e1100520f9d6d867f950e488b5488de68181b7870b",
  8.         "Created": "2020-06-10T04:33:13.666827714Z",
  9.         "Path": "docker-entrypoint.sh",
  10.         "Args": [
  11.             "redis-server"
  12.         ],
  13.         "State": {
  14.             "Status": "running",
  15.             "Running": true,
  16.             "Paused": false,
  17.             "Restarting": false,
  18.             "OOMKilled": false,
  19.             "Dead": false,
  20.             "Pid": 2319,
  21.             "ExitCode": 0,
  22.             "Error": "",
  23.             "StartedAt": "2020-06-10T04:33:14.008260846Z",
  24.             "FinishedAt": "0001-01-01T00:00:00Z"
  25.         },
  26.         "Image": "sha256:36304d3b4540c5143673b2cefaba583a0426b57c709b5a35363f96a3510058cd",
  27.         "ResolvConfPath": "/var/lib/docker/containers/63d4c41152126cae276b69e1100520f9d6d867f950e488b5488de68181b7870b/resolv.conf",
  28.         "HostnamePath": "/var/lib/docker/containers/63d4c41152126cae276b69e1100520f9d6d867f950e488b5488de68181b7870b/hostname",
  29.         "HostsPath": "/var/lib/docker/containers/63d4c41152126cae276b69e1100520f9d6d867f950e488b5488de68181b7870b/hosts",
  30.         "LogPath": "/var/lib/docker/containers/63d4c41152126cae276b69e1100520f9d6d867f950e488b5488de68181b7870b/63d4c41152126cae276b69e1100520f9d6d867f950e488b5488de68181b7870b-json.log",
  31.         "Name": "/redis",
  32.         "RestartCount": 0,
  33.         "Driver": "overlay2",
  34.         "Platform": "linux",
  35.         "MountLabel": "",
  36.         "ProcessLabel": "",
  37.         "AppArmorProfile": "",
  38.         "ExecIDs": null,
  39.         "HostConfig": {
  40.             "Binds": null,
  41.             "ContainerIDFile": "",
  42.             "LogConfig": {
  43.                 "Type": "json-file",
  44.                 "Config": {}
  45.             },
  46.             "NetworkMode": "default",
  47.             "PortBindings": {
  48.                 "6379/tcp": [
  49.                     {
  50.                         "HostIp": "",
  51.                         "HostPort": "6379"
  52.                     }
  53.                 ]
  54.             },
  55.             "RestartPolicy": {
  56.                 "Name": "no",
  57.                 "MaximumRetryCount": 0
  58.             },
  59.             "AutoRemove": false,
  60.             "VolumeDriver": "",
  61.             "VolumesFrom": null,
  62.             "CapAdd": null,
  63.             "CapDrop": null,
  64.             "Capabilities": null,
  65.             "Dns": [],
  66.             "DnsOptions": [],
  67.             "DnsSearch": [],
  68.             "ExtraHosts": null,
  69.             "GroupAdd": null,
  70.             "IpcMode": "private",
  71.             "Cgroup": "",
  72.             "Links": null,
  73.             "OomScoreAdj": 0,
  74.             "PidMode": "",
  75.             "Privileged": false,
  76.             "PublishAllPorts": false,
  77.             "ReadonlyRootfs": false,
  78.             "SecurityOpt": null,
  79.             "UTSMode": "",
  80.             "UsernsMode": "",
  81.             "ShmSize": 67108864,
  82.             "Runtime": "runc",
  83.             "ConsoleSize": [
  84.                 0,
  85.                 0
  86.             ],
  87.             "Isolation": "",
  88.             "CpuShares": 0,
  89.             "Memory": 0,
  90.             "NanoCpus": 0,
  91.             "CgroupParent": "",
  92.             "BlkioWeight": 0,
  93.             "BlkioWeightDevice": [],
  94.             "BlkioDeviceReadBps": null,
  95.             "BlkioDeviceWriteBps": null,
  96.             "BlkioDeviceReadIOps": null,
  97.             "BlkioDeviceWriteIOps": null,
  98.             "CpuPeriod": 0,
  99.             "CpuQuota": 0,
  100.             "CpuRealtimePeriod": 0,
  101.             "CpuRealtimeRuntime": 0,
  102.             "CpusetCpus": "",
  103.             "CpusetMems": "",
  104.             "Devices": [],
  105.             "DeviceCgroupRules": null,
  106.             "DeviceRequests": null,
  107.             "KernelMemory": 0,
  108.             "KernelMemoryTCP": 0,
  109.             "MemoryReservation": 0,
  110.             "MemorySwap": 0,
  111.             "MemorySwappiness": null,
  112.             "OomKillDisable": false,
  113.             "PidsLimit": null,
  114.             "Ulimits": null,
  115.             "CpuCount": 0,
  116.             "CpuPercent": 0,
  117.             "IOMaximumIOps": 0,
  118.             "IOMaximumBandwidth": 0,
  119.             "MaskedPaths": [
  120.                 "/proc/asound",
  121.                 "/proc/acpi",
  122.                 "/proc/kcore",
  123.                 "/proc/keys",
  124.                 "/proc/latency_stats",
  125.                 "/proc/timer_list",
  126.                 "/proc/timer_stats",
  127.                 "/proc/sched_debug",
  128.                 "/proc/scsi",
  129.                 "/sys/firmware"
  130.             ],
  131.             "ReadonlyPaths": [
  132.                 "/proc/bus",
  133.                 "/proc/fs",
  134.                 "/proc/irq",
  135.                 "/proc/sys",
  136.                 "/proc/sysrq-trigger"
  137.             ]
  138.         },
  139.         "GraphDriver": {
  140.             "Data": {
  141.                 "LowerDir": "/var/lib/docker/overlay2/db63749d3abd5e587a88360e27fc9b5b0db7069b45e2bd8c48c75e25eba89100-init/diff:/var/lib/docker/overlay2/30d298e0d46edd68a8cbb588247384b9516d1140f5ca592b7f0b1c04618111f0/diff:/var/lib/docker/overlay2/af6963cd652870740eec10549b2a6c8f08b94edb3a3cea1a42d727026bb6d5a0/diff:/var/lib/docker/overlay2/af514c78199cdcfb30194921b892782dacbe1a3f439167f2f434b2f5a55ab5c3/diff:/var/lib/docker/overlay2/b1e020f1a03a66483794af0cf20d59e8dfa471f692ecaa145398d30500370a2a/diff:/var/lib/docker/overlay2/e55685d1f4ea504c3df5c3cbe822ab000f6412d3eff50b6b8ba097fb551ad922/diff:/var/lib/docker/overlay2/df78a0d3f0dbc449650ce5605d67ff45e93dbadc4fe93d2b7552203a31ab46a8/diff",
  142.                 "MergedDir": "/var/lib/docker/overlay2/db63749d3abd5e587a88360e27fc9b5b0db7069b45e2bd8c48c75e25eba89100/merged",
  143.                 "UpperDir": "/var/lib/docker/overlay2/db63749d3abd5e587a88360e27fc9b5b0db7069b45e2bd8c48c75e25eba89100/diff",
  144.                 "WorkDir": "/var/lib/docker/overlay2/db63749d3abd5e587a88360e27fc9b5b0db7069b45e2bd8c48c75e25eba89100/work"
  145.             },
  146.             "Name": "overlay2"
  147.         },
  148.         "Mounts": [
  149.             {
  150.                 "Type": "volume",
  151.                 "Name": "f544b94e9e0129e7f438b851edbfc94a82c96e6fdda44179d38e20f800878a6a",
  152.                 "Source": "/var/lib/docker/volumes/f544b94e9e0129e7f438b851edbfc94a82c96e6fdda44179d38e20f800878a6a/_data",
  153.                 "Destination": "/data",
  154.                 "Driver": "local",
  155.                 "Mode": "",
  156.                 "RW": true,
  157.                 "Propagation": ""
  158.             }
  159.         ],
  160.         "Config": {
  161.             "Hostname": "63d4c4115212",
  162.             "Domainname": "",
  163.             "User": "",
  164.             "AttachStdin": false,
  165.             "AttachStdout": false,
  166.             "AttachStderr": false,
  167.             "ExposedPorts": {
  168.                 "6379/tcp": {}
  169.             },
  170.             "Tty": false,
  171.             "OpenStdin": false,
  172.             "StdinOnce": false,
  173.             "Env": [
  174.                 "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  175.                 "GOSU_VERSION=1.12",
  176.                 "REDIS_VERSION=6.0.4",
  177.                 "REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-6.0.4.tar.gz",
  178.                 "REDIS_DOWNLOAD_SHA=3337005a1e0c3aa293c87c313467ea8ac11984921fab08807998ba765c9943de"
  179.             ],
  180.             "Cmd": [
  181.                 "redis-server"
  182.             ],
  183.             "Image": "36304d3b4540",
  184.             "Volumes": {
  185.                 "/data": {}
  186.             },
  187.             "WorkingDir": "/data",
  188.             "Entrypoint": [
  189.                 "docker-entrypoint.sh"
  190.             ],
  191.             "OnBuild": null,
  192.             "Labels": {}
  193.         },
  194.         "NetworkSettings": {
  195.             "Bridge": "",
  196.             "SandboxID": "5f8321169dfd067e45f2921d73984d0d76e953cd642d93990d1ed8a3227ad53f",
  197.             "HairpinMode": false,
  198.             "LinkLocalIPv6Address": "",
  199.             "LinkLocalIPv6PrefixLen": 0,
  200.             "Ports": {
  201.                 "6379/tcp": [
  202.                     {
  203.                         "HostIp": "0.0.0.0",
  204.                         "HostPort": "6379"
  205.                     }
  206.                 ]
  207.             },
  208.             "SandboxKey": "/var/run/docker/netns/5f8321169dfd",
  209.             "SecondaryIPAddresses": null,
  210.             "SecondaryIPv6Addresses": null,
  211.             "EndpointID": "33eafd9f86d5e7a3b29ed09fe75d8eb27e0227a07607960550dfef7f620a6872",
  212.             "Gateway": "172.18.0.1",
  213.             "GlobalIPv6Address": "",
  214.             "GlobalIPv6PrefixLen": 0,
  215.             "IPAddress": "172.18.0.2",
  216.             "IPPrefixLen": 16,
  217.             "IPv6Gateway": "",
  218.             "MacAddress": "02:42:ac:12:00:02",
  219.             "Networks": {
  220.                 "bridge": {
  221.                     "IPAMConfig": null,
  222.                     "Links": null,
  223.                     "Aliases": null,
  224.                     "NetworkID": "228826a97a0b066a01811c098e4c4985804598571b9c8d9ad4205a0ee75c8b5b",
  225.                     "EndpointID": "33eafd9f86d5e7a3b29ed09fe75d8eb27e0227a07607960550dfef7f620a6872",
  226.                     "Gateway": "172.18.0.1",
  227.                     "IPAddress": "172.18.0.2",
  228.                     "IPPrefixLen": 16,
  229.                     "IPv6Gateway": "",
  230.                     "GlobalIPv6Address": "",
  231.                     "GlobalIPv6PrefixLen": 0,
  232.                     "MacAddress": "02:42:ac:12:00:02",
  233.                     "DriverOpts": null
  234.                 }
  235.             }
  236.         }
  237.     }
复制代码
进入当前正在运行的容器
  1. # 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
  2. # 命令
  3. docker exec -it 容器id  bashshell 默认命令行
  4. docker attach 容器id
  5. # docker exec         # 进入容器后开启一个新的终端,可以在里面操作(常用)
  6. # docker attach # 进入容器正在执行的终端,不会启动新的进程
复制代码
来源:https://www.cnblogs.com/bloodcolding/p/17073125.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具