Docker学习笔记(3) - Docker命令

devtools/2024/10/23 4:55:52/

1. 帮助命令

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

2. 镜像命令

docker images   # 查看本地主机上的镜像

在这里插入图片描述

# 搜索镜像
docker search 镜像名称   # 搜索镜像
# 下载镜像
docker pull 镜像名称     # 下载镜像,`docker pull`默认拉取最新版的镜像
docker pull 镜像名称:版本号 #下载指定版本镜像,例如:docker pull mysql:5.7
# 删除镜像
docker rmi -f 容器ID    # 删除指定容器 
docker rmi -f 容器ID 容器ID 容器ID   # 删除多个容器
docker rmi -f $(docker images -aq) # 删除全部容器

3.容器命令

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

(以下载一个CentOS镜像来测试学习)

3.1 拉取镜像 & 启动容器
docker pull centos
# 测试:启动并进入容器
docker run -it centos /bin/bash
ls  # 查看容器内的centos 
exit #退出容器

在这里插入图片描述

3.2 列出所有运行的容器
docker ps      # 列出当前正在运行的容器
docker ps -a   # 列出所有运行的容器,包括历史运行过的容器
docker ps -aq  # 只列出所有运行的容器的编号,包括历史运行过的容器
3.3 退出容器
exit                      # 直接退出容器
快捷键: Ctrl + p + q      # 容器不停止退出
3.4 删除容器
docker rm 容器ID                   # 删除指定容器,不能删除正在运行的容器。如果要强制删除使用rm -f
docker rm -f $(docker ps -aq)     # 删除全部容器
docker ps -a -q|xargs docker rm   # 删除全部容器
3.5 启动&停止容器
docker start 容器ID     # 启动容器
docker restart 容器ID   # 重启容器
docker stop 容器ID      # 停止当前正在运行容器
docker kill 容器ID      # 强制停止当前容器 

4. 其他常用命令

4.1 后台启动容器
# 命令 docker run -d 镜像名
docker run -d centos
  • 常见的坑:docker ps 后发现centos停止了
    原因:docker 容器使用后台运行,就必须要有一个前台进程。Docker发现没有应用,就会自动停止。
4.2 查看日志命令
docker logs -tf --tail 显示日志条数  # 容器,没有日志

示例:

  1. 自己编写一段shell脚本:docker run -d centos /bin/bash -c "while true;do echo Hello World;sleep 1;done"
  2. 查看正在运行的容器:docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS         PORTS     NAMES
e2e8c5e2d761   centos    "/bin/bash -c 'while…"   5 seconds ago   Up 4 seconds             cool_neumann
  1. 显示日志:docker logs -tf --tail 10 e2e8c5e2d761
-tf :显示日志
-tail number :显示日志条数
4.3 查看容器中的进程信息
docker top 容器id
4.4 查看镜像元数据
docker inspect 容器id
4.5 进入当前正在运行的容器

通常容器都是使用后台方式运行,但是有时候需要进入到容器中修改一些配置。介绍两种进入正在运行的容器的方式。
方式一:

# 语法
docker exec -it [容器id] [bashshell]
## 举例
docker exec -it e2e8c5e2d761 /bin/bash

方式二:

docker attach 容器id  # 显示正在执行的当前代码

二者区别:
docker exec :进入容器后开启一个新的终端,可以在里面进行操作
docker attach :进入容器正在执行的终端,不会启动新的进程

4.6 从容器内拷贝文件到宿主机

语法:docker cp 容器id:容器内路径 目的主机路径
示例:

# 进入容器
[root@localhost ~]# docker exec -it e2e8c5e2d761 /bin/bash
[root@e2e8c5e2d761 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# 在容器中创建test.java
[root@e2e8c5e2d761 /]# touch test.java
[root@e2e8c5e2d761 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  test.java  tmp  usr  var
[root@e2e8c5e2d761 /]# pwd
/
[root@e2e8c5e2d761 /]# mv test.java /home
[root@e2e8c5e2d761 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@e2e8c5e2d761 /]# cd /home
[root@e2e8c5e2d761 home]# ls
test.java
[root@e2e8c5e2d761 home]# exit
exit
[root@localhost ~]# ls
anaconda-ks.cfg  Desktop  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐
# 将容器中的test.java拷贝到主机上
[root@localhost Desktop]# docker cp e2e8c5e2d761:/home/test.java /home
Successfully copied 1.54kB to /home
[root@localhost Desktop]# cd /home
[root@localhost home]# ls
mysql  qinwei  test.java

5. 小结

在这里插入图片描述


http://www.ppmy.cn/devtools/128063.html

相关文章

大数据之hadoop(hdfs部分)

1.引入:为什么需要分布式存储? 一个服务器能存入海量数据吗?显然是不能,所以构建分布式解决了存入问题.多台服务器的协调工作也是性能的横向扩展. 总结: 1.数据量太大,单机存储能力有上限,需要靠数量来解决问题 2.数量的提升带来的是网络传输、磁盘读…

Maven高级

Maven 是一款构建和管理 Java 项目的工具。 Maven高级内容包括: 分模块设计与开发 继承与聚合 私服 1.分模块设计与开发 1.1介绍 所谓分模块设计,顾名思义指的就是我们在设计一个 Java 项目的时候,将一个 Java 项目拆分成多个模块进行开发。 1). 未…

【Golang】国内接入stripe支付

前言 接入了airswift支付,又来接stripe支付,真是被折腾的够呛。虽然整体流程是一样的,每个支付方式的逻辑和代码都有差异,希望自己的代码帮助大家少浪费时间 支付流程 1、客户端到服务器下订单,服务器向支付服务下支…

C++ 进阶:类相关特性的深入探讨

⭐在对C 中类的6个默认成员函数有了初步了解之后,现在我们进行对类相关特性的深入探讨! 🔥🔥🔥【C】类的默认成员函数:深入剖析与应用(上) 【C】类的默认成员函数:深入剖…

antd vue 输入框高亮设置关键字

<highlight-textareaplaceholder"请输入主诉"type"textarea"v-model"formModel.mainSuit":highlightKey"schema.componentProps.highlightKey"></highlight-textarea> 参考链接原生input&#xff0c;textarea demo地址 …

循序渐进丨MogDB 5.0 远程访问 MogDB/Oracle 数据库的简便方法(使用@符号)

概述 早期的 MogDB 就提供了Postgres_fdw、Oracle_fdw、MySQL_fdw3个插件&#xff0c;用于远程访问 MogDB/Oracle/MySQL数据库。 旧的版本中&#xff0c;访问远程数据库的表&#xff0c;需要显式创建外部表&#xff0c;而在 MogDB 5.0当中&#xff0c;这种用法得到了简化&…

Android Camera2在textureView中的预览和拍照

Camera2预览和拍照 1、Camera2相机模型2、Camera2的重要类3、Camera2调用流程4、Camera2调用实现 1)定义TextureView作为预览界面2)设置相机参数3)开启相机4)开启相机预览5)实现PreviewCallback6)拍照 1、Camera2相机模型 解释上诉示意图&#xff0c;假如想要同时拍摄两张不同…

文件处理新纪元:微信小程序的‘快递员’与‘整理师’

嗨&#xff0c;我是中二青年阿佑&#xff0c;今天阿佑将带领大家如何通过巧妙的文件处理功能&#xff0c;让用户体验从‘杂乱无章’到‘井井有条’的转变&#xff01; 文章目录 微信小程序的文件处理文件上传&#xff1a;小程序的“快递服务”文件下载&#xff1a;小程序的“超…