当前位置: 首页 > news >正文

Docker常用命令总结

目录

一、帮助启动类命令

(1)启动docker

(2)停止docker

(3)重启docker

(4)查看docker

(5)设置开机自启

(6)查看docker概要信息

(7)查看docker总体帮助文档

(8)查看docker命令帮助文档

二、镜像命令

(1)docker images

(2)docker search

(3)docker pull

(4)docker system df

(5)docker rmi

三、容器命令

(1)docker run

(2)docker ps

(3)退出容器

① exit

② ctrl+p+q

(4)进入正在运行的容器并以命令行交互

① docker exec -it 容器ID/容器名称 bashShell

② docker attach 容器ID

(5)启动已停止运行的容器

(6)重启容器

(7)停止容器

(8)强制停止容器

(9)删除已停止的容器

(10)查看容器日志

(11)查看容器内运行的进程

(12)查看容器内部细节

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

(14)导入和导出容器


一、帮助启动类命令

(1)启动docker

systemctl start docker

(2)停止docker

systemctl stop docker

(3)重启docker

systemctl restart docker

(4)查看docker

systemctl status docker

(5)设置开机自启

systemctl enable docker

(6)查看docker概要信息

docker info

(7)查看docker总体帮助文档

docker --help

(8)查看docker命令帮助文档

docker 命令 --helpexample:
docker run --help

二、镜像命令

(1)docker images

列出本地主机上有的镜像

docker images [OPTIONS]常用参数:
-a :列出所有的镜像 (含历史映像层)
-q :只显示镜像IDexample:
docker images -a
docker images -q
docker images -aq
docker images redis   #查找镜像名为redis的镜像
docker images redis:6.0.8   #查找镜像名:版本号(REPOSITORY:TAG)对应的镜像

 

字段解析:

  1. REPOSITORY:表示镜像的仓库源
  2. TAG:镜像的标签版本号
  3. IMAGE ID:镜像ID
  4. CREATED:镜像创建时间
  5. SIZE:镜像大小 

同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

(2)docker search

去配置的镜像网站库找寻找某个镜像,比如:Docker

docker search [OPTIONS] 镜像名字常用参数:
--limit nu   #只输出查到的前nu条记录example:
docker search redis
docker search --limit 3 redis
docker search redis --limit 3    # 放在镜像名称前面后面均可

 

字段解析:

  1. NAME:镜像名称
  2. DISCRIPTION:镜像说明
  3. STARTS:点赞数
  4. OFFICAL:是否是官方认可的
  5. AUTOMATED:是否自动构建 

 

(3)docker pull

从远程库拉取镜像

docker pull 镜像名字[:TAG]example:
docker pull redis:6.0.8
docker pull ubuntu

(4)docker system df

查看镜像/容器/数据卷所占的空间

docker system df

 

 

(5)docker rmi

删除本地有的镜像

#删除单个
docker rmi 镜像ID  #删除镜像,如果此时镜像上面有容器正在运行,会报错无法删除
docker rmi  -f 镜像ID   #强制(forced)删除镜像#删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG #删除全部(慎用)
docker rmi -f $(docker images -qa)  
#首先docker images -qa会列举本地所有的镜像的ID,然后作为一个集合送入rmi一个个删除

三、容器命令

(1)docker run

新建启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]常用参数:
--name=NAME   #为容器指定名字为NAME,不使用的话系统自动为容器命名
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互,一般连用,即-it);-P: 随机端口映射,大写P
-p: 指定端口映射,小写pexample:以ubuntu为例,启动后要交互先声明交互模式,其次交互得需要一个终端,因此参数为-it
docker run -it ubuntu /bin/bash指定名称
docker run -it --name=myubuntu ubuntu /bin/bash

启动守护式容器

在大部分的场景下,我们希望 docker 的服务是在后台运行的,
我们可以过 -d 指定容器的后台运行模式。

 

docker run -d 容器名example:
docker run -d redis:6.0.8
docker run -d ubuntu

注意

上面的docker run -d ubuntu 执行后,使用docker ps -a进行查看,会发现容器已经退出

很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx start。但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用, 这样的容器后台启动后,会立即自杀,因为它觉得他没事可做了.

最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,类似centos、ubuntu

(2)docker ps

docker ps [OPTIONS]常用参数:
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n nu:显示最近nu个创建的容器。
-q :静默模式,只显示容器编号。example:
docker ps -aq
docker ps -n 3
docker ps -l

(3)退出容器

① exit

run进去容器,exit退出,容器停止

② ctrl+p+q

run进去容器,ctrl+p+q退出,容器不停止

(4)进入正在运行的容器并以命令行交互

① docker exec -it 容器ID/容器名称 bashShell

② docker attach 容器ID

example:#容器ID
docker exec -it c32f612cc218 /bin/bash
docker attach c32f612cc218#容器名称
docker exec -it wizardly_booth /bin/bash
docker attach wizardly_booth

区别 

exec 是在容器中打开新的终端,并且可以启动新的进程。用exit退出,不会导致容器的停止。

attach 直接进入容器启动命令的终端,不会启动新的进程。用exit退出,会导致容器的停止。

推荐大家使用 docker exec 命令,因为退出容器终端,不会导致容器的停止。

(5)启动已停止运行的容器

docker start 容器ID或者容器名

(6)重启容器

docker restart 容器ID或者容器名

(7)停止容器

docker stop 容器ID或者容器名

(8)强制停止容器

docker kill 容器ID或容器名

(9)删除已停止的容器

#删除一个
docker rm 容器ID  
docker rm -f 容器ID  #强制删除#删除多个
docker rm -f $(docker ps -a -q)
或
docker ps -a -q | xargs docker rm

(10)查看容器日志

docker logs 容器ID

(11)查看容器内运行的进程

docker top 容器ID

(12)查看容器内部细节

docker inspect 容器ID

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

docker cp  容器ID:容器内路径 目的主机路径example:
#以ubuntu为例,我们在/tmp目录下通过touch a.txt创建a文本,将其复制到本机download目录下
docker cp 958443b97285:/tmp/a.txt /download

(14)导入和导出容器

export 导出容器的内容留作为一个tar归档文件[对应import命令]

import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]

docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号example:#以ubuntu为例
docker export 958443b97285 > abcd.tar
cat abcd.tar | docker import - atguigu/ubuntu:3.7  # 注意 - 左右有分别有一个空格

http://www.lryc.cn/news/9694.html

相关文章:

  • mac环境,安装NMP遇到的问题
  • Web Worker 与 SharedWorker 的介绍和使用
  • React:Redux和Flux
  • TypeScript 学习之Class
  • doris - 数仓 拉链表 按天全量打宽表性能优化
  • 服务器虚拟化及优势
  • 华为ensp模拟校园网/企业网实例(同城灾备及异地备份中心保证网络安全)
  • git命令篇(持续更新中)
  • 用记事本实现“HelloWorld”输出
  • Python基础1
  • 4.2 双点双向路由重发布
  • AcWing《蓝桥杯集训·每日一题》—— 3768 字符串删减
  • 第五天笔记
  • 如何使用ArcGIS进行地理配准
  • 【java基础知识】
  • Java提供了哪些IO方式? NIO如何实现多路复用?
  • 人的大脑遇事的思考解决过程
  • GNU zlib 压缩与解压文件详细介绍
  • 离线环境轻量级自动化部署
  • In-context Learning
  • 【新2023】华为OD机试 - 最优调度策略(Python)
  • Python列表系列之统计计算
  • 【蓝桥杯集训·每日一题】AcWing 1460. 我在哪?
  • 一个不可忽视的重要能力
  • 2023.2.6-2.12 AI行业周刊(第136期):住院
  • 听说2年以上的自动化测试都有16k+,4年10k的你还要等待奇迹吗?
  • git 命令实战
  • 基于机器学习LSTM的古代汉语切分标注算法及语料库研究 完整代码+数据+论文
  • 魔百和M401A刷入Armbian系统EMMC开启wifi
  • 超实用的小红书内容营销策略分享!纯干货