目录

一、docker的基本概念

1.1 docker的三大核心组件

1.2 docker仓库的概念

1.3 docker镜像的概念

1.4 docker容器的概念

1.5 docker镜像和容器的区别

二、docker的安装

三、镜像管理

3.1 搜索镜像(只适合官方镜像库)

3.2  外部拉取镜像

3.3  查看本地所有镜像,docker  pull 

​编辑

3.4  查看所有镜像id

​编辑

3.5  删除镜像

3.6  查看镜像制作过程

四、容器管理

4.3 执行容器

4.4  断开容器

4.5  查看容器

4.5  启动容器

4.6  关闭容器

4.7  杀死所有运行状态下的容器


一、docker的基本概念

1.1 docker的三大核心组件

Docker 仓库 - Docker  registery

Docker 镜像 - Docker  images

Docker 容器 - Docker  containers

1.2 docker仓库的概念

        仓库是用来保存镜像,可以理解为代码控制中的代码仓库。但有公有和私有区别

        公有的 Docker  仓库名字是 Docker Hub。Docker Hub  提供了庞大的镜像集合供用户使用。这些镜像可以是自己创建,或者在别人的镜像基础上创建。

1.3 docker镜像的概念

        Docker镜像是一种轻量级的、可执行的独立软件包,它包含运行某个软件所需的所有内容,包括代码、运行时所需的库、环境变量和配置文件等,只有通过镜像才能生成Docker容器实例。Docker的镜像由一层一层的文件系统组成,这种层级的文件系统UnionFS,在bootfs和rootfs之间,包含的就是典型Linux系统中的/dev、/bin、/etc等标准目录和文件

镜像由三部分组成:
镜像名称:仓库名称+镜像分类+tag名称(镜像版本)

1.存储对象:images
2.格式:库名/分类:tag
3.tag:表示镜像版本

镜像id:

        所有镜像都是通过一个 64 位十六进制字符串来标识的。 为简化使用,前 12 个字符可以组成一个短ID,可以在命令行中使用。短ID还是有一定的碰撞机率,只要我们每个ID号不冲突就可以了

完整镜像名称示例:        
docker.io/library/nginx:v1
docker.io/library/nginx:latest
daocloud.io/library/nginx

1.4 docker容器的概念

         Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker  镜像创建的。Docker 容器可以运行、启动、停止、移动、删除、暂停(挂起)。每一个 Docker 容器都是独立和安全的应用平台,Docker 容器是  Docker 的运行一部分。容器有两个不同的状态:运行态(Running)和退出态 (Exited)。这就是Docker容器。当我们使用docker  run启动容器,Docker容器就进入运行态,当我们停止Docker容器时,它就进入退出状态。

        当我们有一个正在运行的Docker容器时,从运行态到停止态,我们对它所做的一切变更都会永久地写到容器的文件系统中。要切记,对容器的变更是写入到容器的文件系统的,而不是写入到Docker镜像中的。我们可以用同一个镜像启动多个Docker容器,这些容器启动后都是活动的,彼此还是相互隔离的。我们对其中一个容器所做的变更只会局限于那个容器本身。如果对容器的底层镜像进行修改,那么当前正在运行的容器是不受影响的,不会发生自动更新现象。

docker容器可以用以下命令实现:

# docker run  -it  imagename  /bin/bash

1.5 docker镜像和容器的区别

        镜像是静态的,容器是动态的。

        镜像是不可变的,代表一个独立的、可执行的软件包,类似于我们写的代码;而容器是动态的,类似于运行代码的进程,是基于镜像创建的,包含了镜像和运行时的可变数据。

        镜像以文件形式保存在硬盘中,可以独立存在;而容器是运行在内存中的,只能靠运行镜像而存在。

        同样的镜像可以创建多个容器。

        一个镜像可以对应多个不同的容器,这是因为容器在运行时会加上一些自己的可变数据,这些数据会被写入到镜像中,因此不同的容器可以在不同的环境中运行(例如不同的操作系统、不同的应用场景等)。

总之,Docker镜像和容器是Docker容器化技术的两个重要概念,它们之间的关系类似于代码和进程之间的关系,镜像是静态的、不可变的,而容器是动态的、可变的。

要列出本地所有有效的镜像,可以使用命令:

docker  images

docker  image list

        当一个镜像的名称不足以分辨这个镜像所代表的含义时,你可以通过tag将版本信息添加到run命令中,以执行特定版本的镜像

例如:docker run ubuntu:14.04

        镜像可以发布为不同的版本,这种机制我们称之为标签(Tag)可以使用pull命令加上指定的标签:

# docker pull ubuntu:11
# docker pull ubuntu:12.04
# docker pull centos:7

二、docker的安装

Docker官网

Docker: Accelerated, Containerized Application DevelopmentDocker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code.https://www.docker.com/一般不建议官网安装,网速太慢,网速好的话可以选择。

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

选择docker-ce,toolbox是收费版本

可以根据自己的系统选择版本,然后跟着步骤做就行了

docker  -v  查看版本

 

docker  info  查看docker状态

三、镜像管理

3.1 搜索镜像(只适合官方镜像库)

3.2  外部拉取镜像

https://dashboard.daocloud.io/packages/explore

3.3  查看本地所有镜像,docker  pull 

网速太慢,我取消了,这是之前拉的。

3.4  查看所有镜像id

3.5  删除镜像

删除一个或多个,多个之间用空格隔开,可以使用镜像名称或id
docker rmi daocloud.io/library/mysql  或者  docker rmi 81debc

参数解释:
rm          Remove one or more containers  ---移除一个或多个容器
rmi         Remove one or more images   ---删除一个或多个镜像

强制删除

如果镜像正在被使用中可以使用--force强制删除    
docker rmi docker.io/ubuntu:latest --force
-f, --force      Force removal of the image

注意: 容器运行中不能删除,将容器停止后,删除容器,再删除镜像。

删除所有镜像(注意是单引号)

docker  rmi  ’docker  images  -q‘

3.6  查看镜像制作过程

    docker history daocloud.io/library/nginx  使用镜像名或者镜像ID都可以

四、容器管理

4.1  创建新容器但不启动

docker create -it daocloud.io/library/centos:7 /bin/bash

4.2  创建并运行一个新Docker 容器:同一个镜像可以启动多个容器,每次执行run子命令都会运行一个全新的容器

参数解释

[root@docker-server ~]# docker run -it --restart=always daocloud.io/library/centos:7 /bin/bash   #最常用
-i:标准输入输出
-t:分配一个终端或控制台
--restart=always:容器随docker engine自启动,因为在重启docker的时候默认容器都会被关闭   
也适用于create选项
-d    后台运行容器,并返回容器ID

4.3 执行容器

(运行容器时要给容器设置个名字)如果没有指定,docker会自动分配一个随机名称是 docker run 子命令的参数
--name= Assign a name to the container
docker run -it --name 名字  daocloud.io/centos:6 /bin/bash   #名字自定义

docker run  -it  --name

4.4  断开容器

若要断开与容器的连接,并且关闭容器:容器内部执行如下命令

如果只想断开和容器的连接而不关闭容器:

ctrl + p + q

4.5  查看容器

 1.只查看运行状态的容器:
docker ps
2.-a  查看所有容器
docker ps -a
3.只查看所有容器id:
docker ps -a -q

 

4.5  启动容器

# docker start  name   #容器ID也可以
这里的名字是状态里面NAMES列列出的名字,这种方式同样会让容器运行在后台

 

4.6  关闭容器

# docker stop  name

# docker kill  name      --强制终止容器

4.7  杀死所有运行状态下的容器

# docker kill $(docker ps  -q)
# docker stop `docker ps  -q`

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐