首页 > 其他分享 >1.docker简介与常用命令

1.docker简介与常用命令

时间:2023-05-29 20:45:38浏览次数:46  
标签:容器 简介 常用命令 镜像 docker Docker ID 2.4

1.简介

1.1.介绍

Docker是基于Go语言实现的云开源项目。

Docker的主要目标是Build,Ship and Run Any App,Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

image-20230529165142227

Docker是在Linux容器技术的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。

只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

1.2.容器VS虚拟机

虚拟机(virtual machine)就是带环境安装的一种解决方案。

它可以在一种操作系统里面运行另一种操作系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。这类虚拟机完美的运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变。

虚拟机的缺点

1.资源占用多

2 .冗余步骤多

3 .启动慢

Linux容器(Linux Containers,缩写为 LXC)

Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。

Linux容器不是模拟一个完整的操作系统而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。

1.3.docker基本组成

1.3.1.镜像

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

它也相当于是一个root文件系统。

相当于容器的“源代码”,docker镜像文件类似于Java的类模板,而docker容器实例类似于java中new出来的实例对象。

image-20230529170714837

1.3.2.容器

从面向对象角度

Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台

从镜像容器角度

*可以把容器看做是一个简易版的 Linux 环境*(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

1.3.3.仓库

仓库(Repository)是集中存放镜像文件的场所。

类似于

Maven仓库,存放各种jar包的地方;

github仓库,存放各种git项目的地方;

Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。

仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

最大的公开仓库是 Docker Hub(https://hub.docker.com/),

存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等

1.3.4.总结

仓库/镜像/容器这几个概念:

Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。

image文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

镜像文件:image 文件生成的容器实例,本身也是一个文件,称为镜像文件。

容器实例:一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器

仓库:就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。

1.4.安装

docker官网:https://docker.com/

1.4.1.前提条件

CentOS仅发行版本中的内核支持 Docker。

Docker运行在CentOS 7 (64-bit)上,

要求系统为64位、Linux系统内核版本为 3.8以上

使用命令查看当前系统相关信息

cat /etc/redhat-release
uname -r

1.4.2.安装

centos环境下安装

官方安装地址:https://docs.docker.com/engine/install/centos/

①安装gcc

yum -y install gcc
yum -y install gcc-c++

②安装所需软件包

yum install -y yum-utils

③设置stable镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

④更新yum软件包索引

yum makecache fast

⑤安装docker引擎

yum -y install docker-ce docker-ce-cli containerd.io

1.4.3.启动

systemctl start docker

1.4.4.测试

查看版本

docker version

helloworld

docker run hello-world

image-20230529173706681

1.5.卸载

1.5.1.停止docker

systemctl stop docker

1.5.2.卸载

yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

1.6.配置阿里云镜像

阿里云官网:https://cr.console.aliyun.co

image-20230529175119200

1.7.run如何运作

image-20230529180036760

2.常用命令

2.1.启动相关命令

启动

systemctl start docker

停止

systemctl stop docker

重启

systemctl restart docker

查看状态:

systemctl status docker

开机自启

systemctl enable docker

2.2.帮助相关命令

查看概要信息

docker info

查看docker总体帮助文档

docker --help

查看docker命令帮助文档

docker 具体命令--help
例:
docker cp --help

image-20230529181118669

2.3.镜像相关命令

2.3.1.查看本地主机上的镜像

列出本地主机上所有的镜像
docker images

可选参数

  1. -a:列出所有与本地主机连接的远程仓库中的所有镜像。
  2. -q:只显示镜像id

image-20230529183905738

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

2.3.2.查找镜像

docker search 要查找的镜像名字

可选参数:limit(查看多少个镜像),不写则为25

image-20230529184320063

  1. NAME:镜像名称
  2. DESCPRITION:镜像描述
  3. STARS:点赞数量
  4. OFFICIAL:是否为官方的
  5. AUTOMATED:是否为自动构建的

2.3.3.下载镜像

docker pull 要下载的镜像名称

可选参数:TAG(下载的版本),不写默认为lastest(最新)

image-20230529184832782

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

docker system df

image-20230529184931677

2.3.5.删除镜像

删除单个
docker rmi 要删除的镜像ID/名字
删除多个
docker rmi 要删除的镜像ID/名字1:TAG 要删除的镜像ID/名字2:TAG
删除全部
docker rmi ${docker images -qa}

可选参数:-f,强制删除

docker rmi -f 要删除的镜像ID/名字

image-20230529185320137

2.4.容器相关命令

有镜像才能创建容器,所以这里使用Ubuntu镜像进行演示

docker pull ubuntu

2.4.1.启动容器

docker run 镜像名称

可选参数(常用)

  1. --name="容器新名字":为容器指定一个名称;
  2. -d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
  3. -i:以交互模式运行容器,通常与 -t 同时使用;
  4. -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    • 也即启动交互式容器(前台有伪终端,等待交互);
  5. -P:随机端口映射,大写P
  6. -p:指定端口映射,小写p

前台交互式

image-20230529192640777

参数说明

  1. -i: 交互式操作。
  2. -t: 终端。
  3. ubuntu: ubuntu镜像。
  4. /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
  5. 要退出终端,直接输入 exit:

后台守护式

需要先启动前台交互式,然后才能启动后台守护式

image-20230529200728590

2.4.2.查看正在运行的容器

docker ps

可选参数

  1. -a:列出当前所有正在运行的容器+历史上运行过的
  2. -l:显示最近创建的容器。
  3. -n:显示最近n个创建的容器。
  4. -q:静默模式,只显示容器编号。

image-20230529192702016

2.4.3.退出容器

退出并且停止容器:exit

退出但不停止容器:Ctrl+q+p

2.4.4.启动已停止运行的容器

docker start 已停止运行的容器ID/名字

2.4.5.重启容器

docker restart 容器ID/名字

2.4.6.停止容器

docker stop 容器ID/名字

2.4.7.强制停止容器

docker kill 容器ID/名字

2.4.8.删除已停止的容器

删除单个
docker rm 容器ID
删除多个
docker rm -f $(docker ps -a -q)
或者
docker ps -a -q | xargs docker rm

2.4.9.查看容器日志

docker logs 容器ID

2.4.10.查看容器内运行的进程

docker top 容器ID

2.4.11.查看容器内部细节

docker inspect 容器ID

2.4.12.以交互式方式重新进入已开启的容器

docker exec -it 容器ID /bin/bash
或者
docker attach 容器ID

区别

  1. attach直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
  2. exec是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。

2.4.13.拷贝容器到主机上

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

2.4.14.导出容器

docker export 容器ID > 文件名.tar

image-20230529202937163

2.4.15.导入容器

cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

image-20230529203206503

2.5.总结

image-20230529203357244

标签:容器,简介,常用命令,镜像,docker,Docker,ID,2.4
From: https://www.cnblogs.com/Myvlog/p/17441612.html

相关文章

  • docker 安装 Redis环境
    一、Docker搜索redis镜像命令:dockersearch<镜像名称>dockersearchredis二、Docker拉取镜像命令::dockerpull<镜像名称>:<版本号>dockerpullredis三、Docker挂载配置文件接下来就是要将redis的配置文件进行挂载,以配置文件方式启动redis容器。(挂载:即将宿主的文件......
  • docker 实例网络异常占用
    首先删除无效容器或(如果您使用的是docker-composedockercontainerrm<container>docker-composerm<service>docker-compose)确保容器已消失:或者输出中不得有此类容器dockercontainerls|grep<container>docker-composeps|grep<container>现在它可能仍连接到网络,因此......
  • nvm常用命令
    nvmversion//查看nvm版本nvminstall16.20.0//安装node16.20.0版本(附带安装npm)nvmuninstall16.20.0//卸载node16.20.0版本nvmlist//查看node版本nvmuse16.20.0//将node版本切换到16.20.0版本nvmroot......
  • onlyoffice - docker 安装
    docker安装请参考这篇随笔【  https://www.cnblogs.com/c2g5201314/p/17440979.html  】1.安装docker安装onlyoffice镜像sudodockerpullonlyoffice/documentserver等待,直到出现 查看镜像,发现多了个 说明安装成功2.启动dockerrun-i-t-d-p8001:8......
  • Q460MD钢板简介、Q460MD交货状态、Q460MD高强钢
    一、Q460MD钢板简介:Q460MD钢属于低合金高强度结构钢,具有较高的强度、良好的抗疲劳性能、低温韧性以及冷成型和焊接性能。Q460MD/E钢板牌号表示:“Q”:表示钢板屈服强度“屈”的拼音首字母;“460”:表示钢板的屈服强度为460MPa;“M”:表示钢板以TMCP轧制交货。“D”:表示钢板质量等级;“D”......
  • win10 卸载docker 干净
    百度搜到的不多,看了这一篇,测试可行感谢https://blog.csdn.net/weixin_41517074/article/details/128653118$ErrorActionPreference="SilentlyContinue"kill-force-processname'DockerforWindows',com.docker.db,vpnkit,com.docker.proxy,com.docker.9pdb,mo......
  • docker部署ZeLog项目(Tomcat+MySQL+ZrLog)
    一.docker的安装1.1、在安装dockers之前,建议关闭Centos7.9防火墙[root@192~]#systemctlstopfirewalld[root@192~]#setenforce0 setenforce是Linux的selinux防火墙配置命令执行setenforce0表示临时关闭selinux防火墙1.2、通过yum在线安装Docker服务[root@localhos......
  • Factory Method Pattern 工厂方法模式简介与 C# 示例【创建型】【设计模式来了】
    〇、简介1、什么是工厂方法模式?一句话解释:  实体类和工厂类均为单独实现,不影响已实现的类,方便扩展。工厂方法模式(FactoryMethodPattern)是一种创建型模式,它允许客户端通过工厂方法来创建对象,而不是直接使用构造函数。这样可以让客户端代码更加灵活,同时保持实现的独立性。工......
  • docker-oracle;配置oracle
    地址:172.18.0.170root/cssjkyhs/yhs0527le一、安装检查uname-r:查看centos版本,root登录,如果不是root,需要前面加sudo如果之前有安装,卸载:yumremovedockerdocker-commondocker-selinuxdocker-engine二、安装docker安装需要的软件包,yum-util提供......
  • Docker php安装扩展步骤详解
    前言此篇,主要是演示docker-php-source,docker-php-ext-install,docker-php-enable-docker-configure这四个命令到底是用来干嘛的,它们在PHP容器中都做了哪些事情。很多人很不理解在Dockerfile中安装PHP扩展的时候总是出现这几个命令,本篇就就是为你揭开这些命令的神秘面纱而准......