Docker一 | Docker的基本使用

目录

Docker的基本使用

常用命令

启动Docker

查看Docker的运行状态

重启Docker

 停止Docker服务

查看命令相关信息

镜像命令 

列出本地主机上的镜像

搜索某个镜像的名称

 拉取指定的镜像到本地

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

 删除某个镜像

容器命令

启动容器

列出正在运行的容器

退出容器

启动已停止运行的容器

重启容器

停止容器

强制停止容器

删除已停止的容器

启动守护式容器与进入容器

查看容器日志

查看容器内运行的进程

查看容器内部具体细节命令

进入容器内部

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


Docker的基本使用

常用命令

启动Docker

[root@localhost ~]# systemctl start docker

查看Docker的运行状态

[root@localhost ~]# systemctl status docker

重启Docker

[root@localhost ~]# systemctl restart docker

 停止Docker服务

[root@localhost ~]# systemctl stop docker

查看命令相关信息

docker 相关命令 --help

[root@localhost ~]# docker cp --helpUsage:  docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATHCopy files/folders between a container and the local filesystemUse '-' as the source to read a tar archive from stdin
and extract it to a directory destination in a container.
Use '-' as the destination to stream a tar archive of a
container source to stdout.Aliases:docker container cp, docker cpOptions:-a, --archive       Archive mode (copy all uid/gid information)-L, --follow-link   Always follow symbol link in SRC_PATH-q, --quiet         Suppress progress output during copy. Progress output is automatically suppressed ifno terminal is attached

镜像命令 

列出本地主机上的镜像

docker images

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
hello-world                         latest    9c7a54a9a43c   6 months ago    13.3kB
redis                               6.2.7     4b1123a829a1   11 months ago   113MB
apache/rocketmq                     4.9.3     9a54e5b5b6c1   20 months ago   535MB
alpine                              latest    c059bfaa849c   2 years ago     5.58MB
apacherocketmq/rocketmq-dashboard   latest    eae6c5db5d11   2 years ago     738MB
portainer/portainer                 latest    580c0e4e98b0   2 years ago     79.1MB
         参数                                含义
REPOSITORY表示镜像的仓库源
TAG
镜像的标签版本号。在下载镜像的时候,如果默认不加版本号,就会下载默认最新版本的镜像。如果加上指定版本号的镜像,下载的就是对应版本的镜像。
IMAGE ID镜像ID
CREATED镜像创建时间
SIZE镜像大小
-a : 列出本地所有的镜像(含历史映像层)。
-q : 只显示镜像 ID

搜索某个镜像的名称

docker search XXX
[root@localhost ~]# docker search redis
NAME                                DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
redis                               Redis is an open source key-value store that…   12498     [OK]       
redislabs/redisearch                Redis With the RedisSearch module pre-loaded…   61                   
redislabs/redisinsight              RedisInsight - The GUI for Redis                 94                   
redis/redis-stack-server            redis-stack-server installs a Redis server w…   60                   
redis/redis-stack                   redis-stack installs a Redis server with add…   82                   
redislabs/rebloom                   A probablistic datatypes module for Redis        25                   [OK]
redislabs/redis                     Clustered in-memory database engine compatib…   40     

docker search --limit N XXX

 只列出N个镜像,默认为25个

[root@localhost ~]# docker search --limit 5 redis
NAME                       DESCRIPTION                                      STARS     OFFICIAL   AUTOMATED
redis                      Redis is an open source key-value store that…   12498     [OK]       
redislabs/redisearch       Redis With the RedisSearch module pre-loaded…   61                   
redislabs/redisinsight     RedisInsight - The GUI for Redis                 94                   
redis/redis-stack-server   redis-stack-server installs a Redis server w…   60                   
redis/redis-stack          redis-stack installs a Redis server with add…   82   

 拉取指定的镜像到本地

docker pull XXX 没带标签就拉取最新版本的镜像

docker pull XXX:6.1.10 拉取指定标签的镜像

[root@localhost ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
a2abf6c4d29d: Pull complete 
c7a4e4382001: Pull complete 
4044b9ba67c9: Pull complete 
c8388a79482f: Pull complete 
413c8bb60be2: Pull complete 
1abfd3011519: Pull complete 
Digest: sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest

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

docker system df 

[root@localhost ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          9         8         3.063GB   112.7MB (3%)
Containers      15        5         10.4MB    1.993MB (19%)
Local Volumes   4         4         218.8kB   0B (0%)
Build Cache     0         0         0B        0B

 删除某个镜像

docker rmi XXX

docker rmi 某个镜像的IMAGE ID

[root@localhost ~]# docker rmi redis
Untagged: redis:latest
Untagged: redis@sha256:db485f2e245b5b3329fdc7eff4eb00f913e09d8feb9ca720788059fdc2ed8339
Deleted: sha256:7614ae9453d1d87e740a2056257a6de7135c84037c367e1fffa92ae922784631
Deleted: sha256:49c70179bc923a7d48583d58e2b6c21bde1787edf42ed1f8de9e9b96e2e88e65
Deleted: sha256:396e06df5d1120368a7a8a4fd1e5467cdc2dd4083660890df078c654596ddc1c
Deleted: sha256:434d118df2e9edb51238f6ba46e9efdfa21be68e88f54787531aa39a720a0740
Deleted: sha256:2047f09c412ff06f4e2ee8a25d105055e714d99000711e27a55072e640796294
Deleted: sha256:13d71c9ccb39b206211dd1900d06aa1984b0f5ab8abaa628c70b3eb733303a65
Deleted: sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f

不能删除正在运行容器的镜像,可以加上参数-f强制删除

docker rmi -f XXX

docker rmi -f 镜像名1:TAG 镜像名2:TAG 可以删除多个镜像

容器命令

启动容器

 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS含义
--name="容器新名字"为容器指定一个名称;
-d后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i以交互模式运行容器,通常与 -t 同时使用; -t:
-t
为容器重新分配一个伪输入终端,通常与 -i 同时使用; 也即启动交互式容器( 前台有伪终端,等待交互 )
-P随机端口映射,大写P
-p指定端口映射,小写p
[root@localhost ~]# docker run -it ubuntu /bin/bash
root@168fd40e5a27:/# 

参数说明:

-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell ,用来解
释执行 linux 指令。因此用的是 /bin/bash
要退出终端,直接输入 exit

列出正在运行的容器

docker ps

root@168fd40e5a27:/# [root@localhost ~]# docker ps
CONTAINER ID   IMAGE                                      COMMAND                   CREATED              STATUS                            PORTS                                                                                  NAMES
168fd40e5a27   ubuntu                                     "/bin/bash"               About a minute ago   Up About a minute                                                                                                        jovial_einstein
e2592a496c60   portainer/portainer                        "/portainer"              7 weeks ago          Up 34 minutes                     0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer
2984b012f3be   apacherocketmq/rocketmq-dashboard:latest   "sh -c 'java $JAVA_O…"   7 weeks ago          Up 34 minutes                     0.0.0.0:8280->8080/tcp, :::8280->8080/tcp                                              rocketmq-console
799a4159b6cf   apache/rocketmq:4.9.3                      "sh mqbroker -c /hom…"   7 weeks ago          Restarting (255) 41 seconds ago                                                                                          rocketmq-broker
e7cc34338422   redis:6.2.7                                "docker-entrypoint.s…"   2 months ago         Up 34 minutes                     0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis6
12b28b13b6cd   mysql:8.0.20                               "docker-entrypoint.s…"   2 months ago         Up 34 minutes                     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp        

可以携带的参数:

-a : 列出当前所有正在运行的容器 + 历史上运行过的
-l : 显示最近创建的容器。
-n :显示最近 n 个创建的容器。
-q : 只显示正在运行的容器编号。

退出容器

  1. exit  容器停止
  2. ctrl + p + q 容器不停止

启动已停止运行的容器

docker start 容器 ID 或者容器名
[root@localhost ~]# docker ps -n 2
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
95cece2337ab   ubuntu    "/bin/bash"   24 seconds ago   Up 23 seconds             frosty_fermi
27f56882f7fe   ubuntu    "/bin/bash"   43 seconds ago   Up 42 seconds             charming_lamport
[root@localhost ~]# docker start 95cece2337ab
95cece2337ab

重启容器

docker restart 容器 ID 或者容器名
[root@localhost ~]# docker ps -n 3
CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS                     PORTS     NAMES
95cece2337ab   ubuntu    "/bin/bash"   About a minute ago   Up About a minute                    frosty_fermi
27f56882f7fe   ubuntu    "/bin/bash"   About a minute ago   Up About a minute                    charming_lamport
cef340972b6b   ubuntu    "/bin/bash"   2 minutes ago        Exited (0) 2 minutes ago             eloquent_buck
[root@localhost ~]# docker restart cef340972b6b
cef340972b6b

停止容器

docker stop 容器ID或者容器名

[root@localhost ~]# docker stop cef340972b6b
cef340972b6b

强制停止容器

docker kill 容器ID或者容器名称

[root@localhost ~]# docker kill 95cece2337ab
95cece2337ab

删除已停止的容器

docker rm 容器ID

[root@localhost ~]# docker rm 95cece2337ab
95cece2337ab

删除正在运行的容器需要加上-f 

docker rm -f XXX

启动守护式容器与进入容器

如果是前台运行

这种启动方式会霸占我们整个 linux终端,导致我们不能做其他的事情。所以在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以通过-d 指定容器的后台运行模式。
0365c86064ff2f9fdf46a6d90c12685bb43f1b56f5c5bc6560abfda3e1dbc3ac
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                                      COMMAND                   CREATED          STATUS                            PORTS                                                                                  NAMES
0365c86064ff   redis                                      "docker-entrypoint.s…"   4 seconds ago    Up 3 seconds                      6379/tcp             

查看容器日志

docker logs 容器ID

[root@localhost ~]# docker logs 0365c86064ff
1:C 25 Nov 2023 07:30:25.693 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 25 Nov 2023 07:30:25.693 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 25 Nov 2023 07:30:25.693 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 25 Nov 2023 07:30:25.694 * monotonic clock: POSIX clock_gettime
1:M 25 Nov 2023 07:30:25.698 * Running mode=standalone, port=6379.
1:M 25 Nov 2023 07:30:25.698 # Server initialized
1:M 25 Nov 2023 07:30:25.698 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 25 Nov 2023 07:30:25.698 * Ready to accept connections

查看容器内运行的进程

docker top 容器 ID
[root@localhost ~]# docker top 0365c86064ff
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
systemd+            26755               26736               0                   15:30               ?                   00:00:00            redis-server *:6379

查看容器内部具体细节命令

docker inspect 容器 ID

进入容器内部

docker exec -it 容器ID /bin/bash

[root@localhost ~]# docker exec -it 0365c86064ff /bin/bash
root@0365c86064ff:/data# 

使用exit退出后容器依然在运行

也可以通过docker attach 容器ID的方式进入容器,但是exit退出会导致容器停止

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

docker cp 容器ID:容器内路径 目的主机路径 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/213847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字电路基础知识系列(六)之LC滤波器的基础知识

LC滤波器,是指将电感(L)与电容器 ©进行组合设计构成的滤波电路,可去除或通过特定频率的无源器件。电容器具有隔直流通交流,且交流频率越高越容易通过的特性。而电感则具有隔交流通直流,且交流频率越高越不易通过的特性。因此…

linux如何使用Xshell远程连接

简介:本文的一切条件基于redhat的linux操作系统。 目录 1、创建虚拟机: 2、使用命令查看网段信息 拓展1:(若网卡上没有网段信息,可以使用任意两种方法): 准备工作: 1、点击左…

git入门教程+常用命令

Git入门教程 本文章主要参照视频教程:https://www.bilibili.com/video/BV1FE411P7B3/?spm_id_from333.337.search-card.all.click&vd_source06caf161b187fb3f4c039bc15e238fea 为什么要使用GIT 版本控制是项目、文档迭代的必然要求,所以需要使用…

Springboot自定义start首发预告

Springboot自定义start首发预告 基于Springboot的自定义start , 减少项目建设重复工作, 如 依赖 , 出入参包装 , 日志打印 , mybatis基本配置等等等. 优点 模块化 可插拔 易于维护和升级 定制化 社区支持(后期支持) 发布时间 预告: 2023-12-10 预计发布: 2024-1-1 , 元旦首…

移动端原生实现列表列固定横向滚动功能

功能介绍: 在移动端开发中,会用到列表作为信息展示方式,一般希望上下滚动时,可以固定表头,左右滚动时,可以固定最左列。 需求: 1、列表可以使用数组循环遍历; 2、上下滚动时&…

离线环境下使用百度地图(vue版)(展示自己的地图瓦片)3.0版本api

1.下载自己想要的地图网片 (1)瓦片图下载 提取百度网盘中文件,然后运行exe文件,选择要下载的层级及地区即可 百度网盘链接:https://pan.baidu.com/s/16sOJ9ws7HCgNH3EMf7Ejyg?pwd0q0e 提取码:0q0e (2)将瓦片图映射到网上 推荐使…

Python-docx 深入word源码 自定义字符间距

代码和实现效果 from docx import Document from docx.oxml import OxmlElement from docx.oxml.ns import qn from docx.shared import Pt# 调整pt设置字间距 def SetParagraphCharSpaceByPt(run, pt1):通过修改word源码方式, 添加w:spacing标签直接通过调整pt来设置字符间距…

Blender学习--制作带骨骼动画的机器人

1. 首先创建一个机器人模型 时间关系,这部分步骤有时间补充 2. 然后为机器人创建一副骨架 时间关系,这部分步骤有时间补充 3.骨骼绑定 切换到物体模式,选中机器人头部,Shift选中骨骼,切换到姿态模式,&am…

SpringBoot集成系列--xxlJob

文章目录 一、搭建调度中心xxl-job-admin1、下载项目2、调整项目参数3、执行初始化数据库SQL4、启动项目5、访问 二、集成步骤1、添加xxl-job的依赖2、添加xxl-job的依赖3、配置执行器4、创建执行器5、开发任务1)方式1:BEAN模式(方法形式&…

RocketMQ源码

RocketMQ的核心三流程 启动流程 RocketMQ服务端由两部分组成NameServer和Broker,NameServer是服务的注册中心,Broker会把自己的地址注册到NameServer,生产者和消费者启动的时候会先从NameServer获取Broker的地址,再去从Broker发…

【自动驾驶】2023年度盘点:智能汽车、自动驾驶、车联网必读书

2023年,智能驾驶和新能源汽车行业仍然有着肉眼可见的新进展。自动驾驶技术继续尝试从辅助驾驶向自动驾驶的过渡,更重要的是相关技术成本的下降。根据《全球电动汽车展望2023》等行业报告,预计2023年平均成本将降至100美元/千瓦时以下&#xf…

成都工业学院Web技术基础(WEB)实验八:BOM、DOM基本操作

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考,前端变化比较大,按照要求,只能做到像,不能做到一模一样 3、图片和文字仅为示例,需要自行替换 4、如果代码不满足你的要求,请寻求其他的…

【开源】基于Vue.js的就医保险管理系统

文末获取源码,项目编号: S 085 。 \color{red}{文末获取源码,项目编号:S085。} 文末获取源码,项目编号:S085。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预…

最好的猫罐头品牌有哪些?精选的5款口碑好的猫罐头推荐!

对于一个刚入门的养猫小白来说,面对市面上琳琅满目的猫罐头选择确实让人头大。我们总想选到营养价值高的罐头,但又怕猫咪不喜欢吃,也担心选到不安全的产品。 最好的猫罐头品牌有哪些?根据我开宠物店7年的经验,今天我将…

「哈士奇赠书活动 - 46期」-『技术人修炼之道:从程序员到百万高管的72项技能(第2版)』

⭐️ 赠书 - 《技术人修炼之道(第2版)》 ⭐️ 内容简介 本书旨在帮助计算机IT技术人员提升职场核心技能、架构思维、团队管理能力、商业认知,让每一位普通的技术从业者,修炼成为"技术职场超级个体”,通过全面升级…

IntelliJ IDEA无公网远程连接Windows本地Mysql数据库提高开发效率

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

windows启动出现 zookeeper此处不应有java

可能是Java 路径出了问题,这个programFiles直接有空格,没错就有空格,笔者一开始以为这么点算什么空格,需要把这个对应的Java文件到别的英文路径下,并且修改环境变量。就可以启动的。 还可以启动方式有很多种&#xff0…

2.2 模型基础

建模流程 作业 这次搞了10天左右终于把作业做完了。 先是去学习了下如何建模->然后将模型导入Substance Painter里绘制贴图->最后导入到unity中(虽然最后效果很差),但是回过头来看整个过程学习到了次时代美术的工作流,思考…

658. 找到 K 个最接近的元素

658. 找到 K 个最接近的元素 Java代码&#xff1a;滑窗 class Solution {public List<Integer> findClosestElements(int[] arr, int k, int x) {List<Integer> list new ArrayList<>();for (int i 0; i < arr.length; i) {arr[i] arr[i] - x;}for(i…

简单实现Spring容器(二) 封装BeanDefinition对象放入Map

阶段2: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象.2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map.思路: 1.将 bean 信息封装到 BeanDefinition对象中,再将其放入到BeanDefinitionMap集合中,集合的结构大概是 key[beanName]–value[beanDefintion…