Docker常用命令

  • 1. 帮助命令
  • 2. 镜像命令
    • 1. docker images #查看所有本地的主机上的镜像
    • 2. docker search 搜索镜像
    • 3. docker pull 下载
    • 4. docker rmi 删除镜像
  • 3. 容器命令
    • 1. 新建容器并启动
    • 2. 查看所有运行的容器
    • 3. 退出容器
    • 4. 删除容器
    • 5. 启动和停止容器的操作
  • 4. 常用其他命令
    • 1. 后台启动容器
    • 2. 查看日志
    • 3. 查看容器的进程命令
    • 4. 查看容器内部信息
    • 5. 进入当前正在运行的容器
    • 6. 从容器中拷贝文件到主机

总目录: Docker 笔记总目录

1. 帮助命令

1. docker version        # 显示docker的版本信息
2. docker info          # 显示docker的系统信息,包括镜像和容器数量
3. docker 命令 --help # 万能命令 查看帮助

命令帮助文档:reference

2. 镜像命令

地址:镜像命令

1. docker images #查看所有本地的主机上的镜像


[root@xxx ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   11 months ago   13.3kB# 解释
REPOSITORY  镜像的仓库源
TAG         镜像的标签
IMAGE ID    镜像ID
CREATED     镜像的创建时间
SIZE        镜像大小# 可选项-a, -all       列出所有的镜像-q, -quiet       只显示镜像的ID

2. docker search 搜索镜像

推荐到网页上搜索

[root@xxx ~]# docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   13197     [OK]
mariadb                         MariaDB Server is a high performing open sou…   5042      [OK]
phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   628       [OK]
percona                         Percona Server is a fork of the MySQL relati…   586       [OK]
bitnami/mysql                   Bitnami MySQL Docker Image                      76                   [OK]# 可选项-f, --filter[root@xxx ~]# docker search mysql -f=STARS=6000        # 搜索收藏有六千以上的镜像
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   13197     [OK]

3. docker pull 下载

docker pull 镜像名 [:tag ]
[root@xxx ~]# docker pull mysql
Using default tag: latest           # 如果不写tag,默认就是latest
latest: Pulling from library/mysql
45b42c59be33: Pull complete         # 分层下载, docker image的核心,联合文件系统
b4f790bd91da: Pull complete
325ae51788e9: Pull complete
adcb9439d751: Pull complete
174c7fe16c78: Pull complete
698058ef136c: Pull complete
4690143a669e: Pull complete
f7599a246fd6: Pull complete
35a55bf0c196: Pull complete
790ac54f4c47: Pull complete
b0ddd5d1b543: Pull complete
1aefd67cb33d: Pull complete
Digest: sha256:03306a1f248727ec979f61424c5fb5150e2c5fd2436f2561c5259b1258d6063c # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest      # 真实地址docker pull mysql 就相当于 docker pull docker.io/library/mysql:latest指定版本下载
docker pull 镜像名称:版本

4. docker rmi 删除镜像

1. docker rmi -f 镜像ID
2. docker rmi -f 镜像ID 镜像ID 镜像ID
3. docker rmi -f $(docker images -aq)

3. 容器命令

我们有了镜像才可以创建容器,现在下载一个centos镜像学习   docker pull centos

1. 新建容器并启动

docker run [参数] image
# 参数说明--name="Name"  容器名称 tomcat01 tomcat02 用来区分容器-d             后台方式运行-it               使用交互方式运行,进入容器查看内容-p              指定容器端口 -p 8080:8080-p ip:主机端口:容器端口-p 主机端口:容器端口(常用)-p 容器端口-P             随机指定端口--rm          运行完即删除,一般用于测试# 测试:
启动并进入容器
[root@xxx ~]# docker run -it centos /bin/bash
[root@5aab70de71ad /]# ls      # 已经进入了容器内
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@5aab70de71ad /]# exit        # 退出容器
exit

2. 查看所有运行的容器

docker ps 命令# 列出当前正在运行的容器-a      # 列出当前正在运行的容器+带出历史运行过的容器-n=?  # 显示最近创建的容器-q       # 只显示容器的编号CONTAINER ID[root@xxx ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
5aab70de71ad   centos    "/bin/bash"   8 minutes ago   Exited (0) 7 minutes ago             kind_solomon

3. 退出容器

exit         # 容器停止并退出
Ctrl + P + Q  # 容器不停止退出 [root@xxx ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@xxx ~]# docker run -it centos /bin/bash
[root@875c0d15f72f /]# [root@xxx ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
875c0d15f72f   centos    "/bin/bash"   18 seconds ago   Up 17 seconds             bold_brahmagupta

4. 删除容器

docker rm 容器id # 删除指定容器, 不能直接删除正在运行的容器,除非加-f
docker rm -f $(docker ps -aq) # 删除所有的容器
docker ps -aq | xargs docker rm # 删除所有的容器

5. 启动和停止容器的操作

docker start 容器id        # 启动容器
docker rstart 容器id      # 重启容器
docker stop 容器id        # 停止当前正在运行的容器
docker kill 容器id        # 强制停止当前容器

4. 常用其他命令

1. 后台启动容器

[root@xxx ~]# docker run -d centos
86a976e5a92fe3a772adf27acb305d2012c1a7997ab55de34476c8769ade795b
[root@xxx ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@xxx ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                      PORTS     NAMES
86a976e5a92f   centos    "/bin/bash"   12 seconds ago   Exited (0) 11 seconds ago             goofy_galois
875c0d15f72f   centos    "/bin/bash"   10 minutes ago   Exited (0) 31 seconds ago             bold_brahmagupta
5aab70de71ad   centos    "/bin/bash"   23 minutes ago   Exited (0) 23 minutes ago             kind_solomon:'
问题docker ps 发现centos停止了
常见的坑:docker 容器使用后台运行,就必须有一个前台进程,docker 发现没有应用,就会自动停止
比如安装nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了
'

2. 查看日志

docker logs -f -t --tail 容器id        # 显示指定行数的日志-t                   #  时间戳-f                    # 保留打印窗口,持续打印--tail number       # 要显示日志条数

3. 查看容器的进程命令

docker ps
docker top 容器id

4. 查看容器内部信息

docker inspect 容器id
[root@xxx ~]# docker inspect 883e00b6bc96
[{"Id": "883e00b6bc96a0161a4f2ac338c28dfca7e79c06c1590b3fcccdf08b245dc612","Created": "2022-09-18T15:10:04.316826843Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 40432,"ExitCode": 0,"Error": "","StartedAt": "2022-09-18T15:10:04.832642934Z","FinishedAt": "0001-01-01T00:00:00Z"},"Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55","ResolvConfPath": "/var/lib/docker/containers/883e00b6bc96a0161a4f2ac338c28dfca7e79c06c1590b3fcccdf08b245dc612/resolv.conf","HostnamePath": "/var/lib/docker/containers/883e00b6bc96a0161a4f2ac338c28dfca7e79c06c1590b3fcccdf08b245dc612/hostname","HostsPath": "/var/lib/docker/containers/883e00b6bc96a0161a4f2ac338c28dfca7e79c06c1590b3fcccdf08b245dc612/hosts","LogPath": "/var/lib/docker/containers/883e00b6bc96a0161a4f2ac338c28dfca7e79c06c1590b3fcccdf08b245dc612/883e00b6bc96a0161a4f2ac338c28dfca7e79c06c1590b3fcccdf08b245dc612-json.log","Name": "/centos01","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/22b28038d74b07dba244aa3079f2c9e00160c404f95955ca3b8be0b819b0d08d-init/diff:/var/lib/docker/overlay2/5387b5fd9a09e59bae08fb305dff79ee085fb143f650942f97e957d4c4fa715a/diff","MergedDir": "/var/lib/docker/overlay2/22b28038d74b07dba244aa3079f2c9e00160c404f95955ca3b8be0b819b0d08d/merged","UpperDir": "/var/lib/docker/overlay2/22b28038d74b07dba244aa3079f2c9e00160c404f95955ca3b8be0b819b0d08d/diff","WorkDir": "/var/lib/docker/overlay2/22b28038d74b07dba244aa3079f2c9e00160c404f95955ca3b8be0b819b0d08d/work"},"Name": "overlay2"},"Mounts": [],"Config": {"Hostname": "883e00b6bc96","Domainname": "","User": "","AttachStdin": true,"AttachStdout": true,"AttachStderr": true,"Tty": true,"OpenStdin": true,"StdinOnce": true,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd": ["/bin/bash"],"Image": "centos","Volumes": null,"WorkingDir": "","Entrypoint": null,"OnBuild": null,"Labels": {"org.label-schema.build-date": "20201204","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": {"Bridge": "","SandboxID": "45224a966c4cd0da7f34c10f62d583afc393417da5c0ea70e8d769ddda5721cb","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "/var/run/docker/netns/45224a966c4c","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "2e88064eb229a7ef18afce7258e1c0abbf08ad2a23901fdb94895aeaf2ba9273","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": "d2249d02771ec945a4fe3edc522f1068fbe4ded8f1f539b0988b701e82723c46","EndpointID": "2e88064eb229a7ef18afce7258e1c0abbf08ad2a23901fdb94895aeaf2ba9273","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}}}}
]

5. 进入当前正在运行的容器

我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

# 方式1
docker exec -it 容器id /bin/bash
# 方式2
docker attach 容器id /bin/bash# exec      进入容器后,开启一个新的终端,可以在里面操作(常用)
# attach    进入容器正在执行的终端,不会启动新的进程

6. 从容器中拷贝文件到主机

docker cp 容器id:容器路径 目的主机路径[root@xxx ~]# docker attach 883e00b6bc96
[root@883e00b6bc96 ~]# touch temp.txt
[root@883e00b6bc96 ~]# exit
exit
[root@xxx ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@xxx ~]# docker cp 883e00b6bc96:/root/temp.txt ./
[root@xxx ~]# ls
temp.txt
# 拷贝是一个手动过程,未来我们使用 -v卷的技术,可以实现自动

Docker-常用命令相关推荐

  1. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  2. 客快物流大数据项目(九):Docker常用命令

    目录 Docker常用命令 一.帮助命令 二.镜像命令 1.搜索镜像

  3. 扫盲 docker 常用命令

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/xuan_lu/article/details/119700854 一.docker常用命令 do ...

  4. Docker常用命令汇总

    Docker常用命令汇总 帮助命令 docker version docker info docker --help 镜像命令 docker images 列出本地主机上的镜像,各个选项说明如下: R ...

  5. Docker实战第二天(Docker常用命令详解)

    Docker常用命令 docker version #查看版本 docker search centos #搜索可用的docker镜像 docker images #查看当前docker所有镜像 do ...

  6. Docker常用命令操作——1)、镜像操作;2)、容器操作

    Docker常用命令&操作 1).镜像操作 https://hub.docker.com/ 操作 命令 说明 检索 docker search 关键字 eg:docker search red ...

  7. docker常用命令(总结)

    docker常用命令 一.docker镜像操作 1.docker显示本地下载好的镜像: docker images 2.docker下载镜像(例如下载ubuntu12.04): docker pull ...

  8. Docker常用命令(docker快捷键)海康docker命令 LY

    通用docker命令 查看镜像:docker images 查看每个镜像image每个容器占用空间大小:docker system df -v 修改镜像仓库标签:docker tag IMAGEID( ...

  9. Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit

    相关阅读: Docker(一):Docker的安装与常用命令 Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit Docker(三):Docker镜像导入与导 ...

  10. Docker常用命令、超实用、讲解清晰明了(rm、stop、start、kill、logs、diff、top、cp、restart ...)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 查看docker信息(version.info) # 查看docker版本 $docker v ...

最新文章

  1. Spring Security 实战干货:玩转自定义登录
  2. 技术的想象力:云栖大会第一天发布了什么?
  3. Command(命令模式)
  4. C语言字符型常量和字符串常量的区别
  5. 智能卡开发的相关总结
  6. python模块使用手册_Python中文手册-Python模块
  7. AutoJS实现微信自动聊天机器人
  8. 数据分析师面试题目_拼多多面经分享:24个「数据分析师」岗位面试题和答案解析...
  9. 自主研发的流程引擎怎么样?好用吗?
  10. pgp各种弱类型绕过
  11. 魔百盒CM311-1_S905L3芯片_YST代工_红外蓝牙语音_安卓9.0_线刷固件包
  12. c语言程序设计基础计算存款利息,《C语言及程序设计》实践参考——定期存款利息计算器...
  13. 谜底是计算机的谜语英语,英语谜语大全及答案
  14. 使用rpc(thrift或protobuf)进行前后端交互的若干种方式
  15. 清北学堂2019.8.7
  16. vue中自定义组件的用法(企业微信通讯录选人)
  17. verilog读入txt文件
  18. Microsoft Visual Studio 2010(VS2010)秘钥
  19. Jsch报错:com.jcraft.jsch.JSchException: session is down
  20. MySQL高可用安装

热门文章

  1. ssh配置免密登录、scp文件传输免密
  2. 【Python3】xlwt/xlrd模块读取和新建excel并生成直方图
  3. Django计算机毕业设计农产品追溯系统设计与实现python(源码程序+lw+远程部署)
  4. 104-twinkstar-2021-05-17
  5. 最小外接矩形(RotatedRect返回角度angle、width、height问题)
  6. ATM交换机通讯管理基础
  7. 计算机网络数据链路层之使用广播信道的数据链路层(含MAC帧格式)
  8. 隐而不匿 CIO不要忽视IT管理的隐性成本
  9. archlinux的pacman错误
  10. openstack -配额管理