docker的常用命令

帮助命令

docker version       # 显示docker版本信息
docker info         # 显示docker的系统,包含镜像和容器的数量
docker 命令 --help   # 帮助命令

帮助文档的地址:https://docs.docker.com/engine/reference/commandline/cli/

镜像命令

docker image 查看所有本地的主机上的所有镜像

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   4 months ago   13.3kB
centos        latest    300e315adb2f   7 months ago   209MB
# 解释
REPOSITORY  镜像的仓库源
TAG         镜像标签(版本信息)
IMAGE ID    镜像ID
CREATED     镜像的创建时间
SIZE        镜像的大小
# 可选项
docker images -a    # 列出所有的镜像
docker images -q    # 列出所有镜像的ID号
[root@localhost ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11299     [OK]
# 可选项 通过收藏来过滤
--filter=STARS=3000   # 搜索出来的镜像就是STARS大于3000的
# 命令格式例子:
docker search mysql --filter=STARS=3000
``docker pull 下载镜像
```shell
# 下载镜像docker pull 镜像名[:tag]
[root@localhost ~]# docker pull mysql
Using default tag: latest               # 如果不写tag,默认下载latest(最新的)
latest: Pulling from library/mysql
e1acddbe380c: Pull complete             # 分层下载:docker image的核心 联合文件系统
bed879327370: Pull complete
03285f80bafd: Pull complete
ccc17412a00a: Pull complete
1f556ecc09d1: Pull complete
adc5528e468d: Pull complete
1afc286d5d53: Pull complete
6c724a59adff: Pull complete
0f2345f8b0a3: Pull complete
c8461a25b23b: Pull complete
3adb49279bed: Pull complete
77f22cd6c363: Pull complete
Digest: sha256:d45561a65aba6edac77be36e0a53f0c1fba67b951cb728348522b671ad63f926
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest          # 真实地址# 下面两者等价
docker pull mysql
docker.io/library/mysql:latest# 指定版本下载
[root@localhost ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
e1acddbe380c: Already exists
bed879327370: Already exists
03285f80bafd: Already exists
ccc17412a00a: Already exists
1f556ecc09d1: Already exists
adc5528e468d: Already exists
1afc286d5d53: Already exists
4d2d9261e3ad: Pull complete
ac609d7b31f8: Pull complete
53ee1339bc3a: Pull complete
b0c0a831a707: Pull complete
Digest: sha256:7cf2e7d7ff876f93c8601406a5aa17484e6623875e64e7acc71432ad8e0a3d7e
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

删除镜像

[root@localhost ~]# docker rmi -f 镜像ID                  # 删除指定的镜像
[root@localhost ~]# docker rmi -f 镜像ID 镜像ID 镜像ID    # 删除多个镜像
[root@localhost ~]# docker rmi -f $(docker images -aq)  # 删除全部镜像

容器命令

说明:有了镜像才可以创建容器。

docker pull centos

新建容器并启动

docker run [可选参数] image
# 参数说明
--name="Name" 容器名字,用于区分容器
-d            后台方式运行
-it           使用交互方式运行,进入容器查看内容
-p            指定容器的端口 -p 8080:9090-p 主机端口:容器端口(常用)-p 容器端口
-P            随机指定端口# 测试,启动并进入容器
[root@localhost ~]# docker run --name=centos01 -it centos /bin/bash
[root@e3a2c98628fb /]# ls  # 查看容器内的centos,基础版本,很多命令都是不完善的!
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var# 从容器中退回主机
[root@e3a2c98628fb /]# exit
exit
[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

列出所有运行中的容器

# docker ps 命令# 列出当前正在运行的容器
-a  # 列出当前正在运行的容器加上历史运行过的容器
-n=? #显示最近创建的容器
-q  # 只显示容器的编号(ID)
[root@localhost /]# docker ps # 列出当前正在运行的容器
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost /]# docker ps -a   # 列出当前正在运行的容器加上历史运行过的容器
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                          PORTS     NAMES
e3a2c98628fb   centos    "/bin/bash"   3 minutes ago   Exited (0) About a minute ago             centos01
[root@localhost /]# docker ps -aq  #只显示容器的编号
e3a2c98628fb
34d9616e7b27
94567d54cc11

退出容器

exit     # 直接停止容器并退出
ctrl+P+Q  # 容器不停止退出(后台运行)

删除容器

docker rm 容器id                   # 删除指定的容器,不能删除正在运行的容器,如果要删除需要加-f
docker rm -f $(docker ps -aq)    # 删除所有的容器
docker ps -a -q|xargs docker rm  # 删除所有的容器

启动和停止容器的操作

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

其他命令

# 命令 docker run -d 镜像名!
[root@localhost /]# docker run -d centos   # 以后台启动
42fa2b497a793e20400ca7a1a1ede8af5c047bfa9044cd88f5d6650b2c59c681
# 问题docker ps,发现centos停止了
[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES# 常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了。

查看日志命令

docker logs -f -t --tail number 容器id
[root@localhost ~]# docker logs -f -t --tail 10 0a6de1359a00
# 显示日志
-tf     # 显示日志
--tail number # 显示日志跳数

查看容器中进程信息

# docker top 容器id
[root@localhost ~]# docker top 0a6de1359a00
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4364                4344                0                   23:21               ?                   00:00:00            /bin/bash -c while true;do echo

查看镜像的元数据

# docker inspect 容器id# 测试
[root@localhost /]# docker inspect 0a6de1359a00
[{"Id": "0a6de1359a006b0c46524dd11681033a57ce4030e7c8a790fe5cf68a00fe2157","Created": "2021-08-19T03:21:25.70153708Z","Path": "/bin/bash","Args": ["-c","while true;do echo xiao;sleep 1;done"],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 4364,"ExitCode": 0,"Error": "","StartedAt": "2021-08-19T03:21:26.461057357Z","FinishedAt": "0001-01-01T00:00:00Z"},"Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55","ResolvConfPath": "/var/lib/docker/containers/0a6de1359a006b0c46524dd11681033a57ce4030e7c8a790fe5cf68a00fe2157/resolv.conf","HostnamePath": "/var/lib/docker/containers/0a6de1359a006b0c46524dd11681033a57ce4030e7c8a790fe5cf68a00fe2157/hostname","HostsPath": "/var/lib/docker/containers/0a6de1359a006b0c46524dd11681033a57ce4030e7c8a790fe5cf68a00fe2157/hosts","LogPath": "/var/lib/docker/containers/0a6de1359a006b0c46524dd11681033a57ce4030e7c8a790fe5cf68a00fe2157/0a6de1359a006b0c46524dd11681033a57ce4030e7c8a790fe5cf68a00fe2157-json.log","Name": "/strange_banach","RestartCount": 0,"Driver": "devicemapper","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": {"DeviceId": "75","DeviceName": "docker-253:0-134330004-89b326d7c1244b2ca08cc0bd3395e5ae137cfdc1557aecd790597568a94dc698","DeviceSize": "10737418240"},"Name": "devicemapper"},"Mounts": [],"Config": {"Hostname": "0a6de1359a00","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd": ["/bin/bash","-c","while true;do echo xiao;sleep 1;done"],"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": "fa50f49edd70d19e406564606f74a22a5a7fc786dfb441427c925327eaab52c5","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "/var/run/docker/netns/fa50f49edd70","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "32a32807c8259f5610fde30dec2889cae8451761f5fdfe323d18f64df567a33c","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": "5c4027be5f90d3adffed81a50ebebc7b555335d16411db4a36718d978ace5c70","EndpointID": "32a32807c8259f5610fde30dec2889cae8451761f5fdfe323d18f64df567a33c","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}}}}
]
[root@localhost /]#

进入当前运行的容器

# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置# 命令一
docker exec -it 容器id /bin/bash
# 测试
[root@localhost /]# docker exec -it 0a6de1359a00 /bin/bash
[root@0a6de1359a00 /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr
[root@0a6de1359a00 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 03:21 ?        00:00:00 /bin/bash -c while true;do echo xiao;sleep 1
root        576      0  0 03:30 pts/0    00:00:00 /bin/bash
root        595      1  0 03:31 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=
root        596    576  0 03:31 pts/0    00:00:00 ps -ef# 命令二
docker attach 容器id
# 测试
[root@localhost /]# docker attach  0a6de1359a00docker exec     # 进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach   # 进入容器正在执行的终端,不会启动新的终端。

从容器内拷贝文件到主机上

# 命令
docker cp 容器id:容器内路径 目的路径
# 测试
[root@localhost home]# docker cp 0a6de1359a00:/home/test.python /home

docker的常用命令(三)相关推荐

  1. Docker客户端常用命令整理

    之前在 https://blog.csdn.net/fengbingchun/article/details/109584460 中介绍过在Windows10家庭版和Ubuntu16.04上安装Doc ...

  2. Docker初学3:Docker的常用命令

    Docker的常用命令 帮助命令 帮助命令可以在我们遇到不懂的命令时帮助我们去了解它们怎么使用. docker version # 显示 Docker 版本信息. docker info # 显示 D ...

  3. Docker 精通之常用命令

    Docker 精通系列 Docker 精通之入门 Docker 精通之微服务 Docker 精通之常用命令 Docker 精通之 Dockerfile 配置文件路径 /etc/sysconfig/do ...

  4. Docker镜像常用命令

    Docker镜像常用命令 查看镜像列表 docker images $ docker images >>> REPOSITORY TAG IMAGE ID CREATED SIZE ...

  5. 久等了!Docker容器常用命令

    点击蓝色"程序员的时光 "关注我 ,标注"星标",及时阅读最新技术文章 写在前面: 小伙伴儿们,大家好!上一篇我们讲到Docker的常用命令--详细齐全!Doc ...

  6. Docker的RUN流程和Docker原理、Docker的常用命令、其他命令

    Docker的RUN流程和Docker原理 Run流程 底层原理 Docker是怎么工作的 Docker为什么比VM快 Docker的常用命令 帮助命令 镜像命令 查看镜像 搜索镜像 下载镜像 指定版 ...

  7. Docker镜像常用命令(三)

    Docker镜像.容器常用命令(三) 1.基础命令 docker version #查看docker的版本信息 docker info #查看docker的系统信息,包括镜像和容器的数量 docker ...

  8. Docker学习(三)-----Docker镜像常用命令

    六.Docker镜像 镜像是Docker的三大组件之一 Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载 6.1Docker获取镜像 6.1.1查找镜像 我们可 ...

  9. Docker系列(三)Docker的常用命令

    本文主要对Docker中常用的一些命令进行整理介绍. 1 帮助命令 docker version # 显示docker的版本信息 docker info #显示docker更加详细的一些信息,系统信息 ...

最新文章

  1. 树莓派:linux库概念及相关编程(面试重点):以及USB端口号找到不的情况
  2. 基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台
  3. excel一些操作技巧
  4. liunx+java+jar+运行_Linux后台运行java的jar包
  5. HDU1269 迷宫城堡(模板题)
  6. 《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程
  7. 【集合】CFdiv.2#600B Silly Mistake
  8. CONTRASTIVE REPRESENTATION DISTILLATION
  9. JavaScript 30 Day -- 07 彩虹画笔
  10. 阿里巴巴2016前端开发工程师笔试一
  11. 计算机协会游园活动方案,计算机爱好者协会建设策划方案
  12. 电脑开机后,显示屏无信号怎么处理?
  13. 常见C++开源网站项目
  14. 弹性计算双周刊 第 6 期
  15. python读取加密word_Python 实现加密过的PDF文件转WORD格式
  16. 数据结构课程设计-(五)行车路线(图的应用)
  17. 抖音爆款小游戏《我飞刀玩得贼6》性能优化案例分享
  18. 人类又被AI碾压,这次是星际争霸
  19. revi怎么弄插件能够使附件发生一定角度的旋转?
  20. PyCharm easygui

热门文章

  1. JS逆向之基础定位技巧
  2. SEO人员,如何避免自己“一头雾水”?
  3. 中国邮递员问题最短路径(代码+实现)
  4. iOS开发之侧滑手势返回功能
  5. Android TextView字体大小调节框架QFontChangeLib介绍
  6. 集成支付宝SDK时错误的解决办法
  7. MBN与APN介绍学习
  8. c8051f020C语言程序,C8051F020编程UART串口收发数据
  9. AMBER分子动力学模拟之结果分析(突变型的能量计算,丙氨酸扫描)-- HIV蛋白酶-抑制剂复合物(5)
  10. openfire linux 64,openfire在windows环境和linux环境下的配置