一、镜像

1.介绍

Docker镜像就是一个只读的模版。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。它也相当于是一个root文件系统。比如官方镜像centos:7就包含了完整的一套centos:7的最小系统的root文件系统。,相当于容器的“源代码”,docker镜像文件类似于java的类模版,而docker容器实例类似于java中new出来的实例对象。

2.镜像命令

1.docker images

各个选项说明

- REPOSITORY:表示镜像的仓库源

- TAG:镜像的标签版本号

- IMAGE ID:镜像的ID

- CREATED:镜像创建时间

- SIZE:镜像大小

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

- 列出本地主机上的镜像

    - 选项

        - docker images -a :列出本地所有的镜像(含历史映像层)

        - docker images -q :只输出镜像的ID

2.docker pull 

 docker pull 镜像名

    - 下载镜像

    - docker pull 镜像名字[:TAG]

    - 没有TAG就是最新版,等价于docker pull 镜像名:latest

3.docker search

- docker search [OPTIONS] 镜像名字

OPTIONS说明:

--limit : 只列出N个镜像,默认25个

docker search --limit 5 redis

4.docker system df

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

5.docker rmi

- docker rmi 镜像名[:TAG]

- 删除镜像

- docker rmi 镜像名[:TAG] 镜像名[:TAG] 镜像名[:TAG]

- 删除多个镜像

- docker rmi $ (docker images -a -q)

- 删除所有未使用的镜像

- -f 强制删除

3.虚悬镜像

- 仓库名、标签都是<none>的镜像

二、容器

1.介绍

1 .从面向对象角度

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

2. 从镜像容器角度

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

2.容器命令

1.docker run

- docker run [options] images [command]

-  新建+启动容器

- options:有些是一个减号,有些是两个减号

        - --name="容器新名字"  为容器指定一个名称

        - -d 后台运行新容器并返回容器ID,也即启动守护式容器(后台运行)

        - -i 以交互模式运行容器,通常与 -t 同时使用

        - -t 为容器分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互)

        - -P 随机端口映射

        - -p 指定端口映射

2.docker ps

- docker ps [optinos]

- 列出当前正在运行的容器

- options:

        - -a 列出当前正在运行的容器+历史上运行过的

        - -l 显示最近创建的容器

        - -n 显示最近n个创建的容器

        - -q 静默模式,只显示容器编号

3.退出容器

1.exit

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

2.ctrl+p+q

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

4. docker start

- docker start 容器ID或容器名

- 启动已停止运行的容器

5.docker restart

- docker restart 容器ID或容器名

- 重新启动容器

6. dockr stop

- docker stop 容器ID或容器名

- 停止容器

7.docker kill

- docker kill 容器ID或容器名

- 强制停止容器

8. docker rm

- docker rm [-f] 容器ID

- 删除已停止的容器

- -f 强制删除

 - docker rm -f $(docker ps -a -q)

 - docker ps -a -q | xargs docker rm

- 一次性删除多个容器

9.启动守护式容器(后台服务器)

    - docker run -d 启动容器并进入后台

    - docker容器后台运行,就必须有一个前台进程,否则就会退出

    - redis

        - 前台交互式启动

        docker run -it redis:6.0.8

        - 后台守护式启动

        docker run -d redis:6.0.8(默认以前台模式启动后监听6379端口)

10.docker logs

- docker logs 容器ID或容器名

- 查看容器日志

11.docker top

- docker top 容器ID或容器名

- 查看容器内运行的进程

12.docker inspect

- docker inspect 容器ID或容器名

- 查看容器内部细节

13.进入正在运行的容器并以命令行交互

- docker exec -it 容器ID /bin/bash

    或

    - docker attach 容器ID

    - 区别:

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

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

    - 一般用-d后台启动的程序,再用exec进入对应的容器实例

14.docker cp

- docker cp 容器ID:文件路径  主机文件路径

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

15.导入和导出容器

- 导出:

        - docker export 容器ID > 容器ID.tar

    - 导入:

        - docker import 容器ID.tar 镜像名:标签

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐