docker desktop for mac 入门到精通(2)

Docker的必备常识知识简介
Docker 就像一个盒子,里面可以装很多物件,如果需要某些物件,可以直接将该盒子拿走,而不需要从该盒子中一件一件的取。

Docker 包括三个基本概念:

镜像(Image)

Docker的镜像概念类似于虚拟机里的镜像(比如.IOS文件),是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了MySQL或用户需要的其它应用程序。
这里的镜像就如下方虚拟机创建时候使用的镜像类似。这个镜像便于移动,并且这个镜像我们可以交给任何人使用,其他人使用的时候也很方便,只需要将其实例化即可。

容器(Container)

Docker容器是由Docker镜像创建的运行实例,类似VM虚拟机,支持启动,停止,删除等。
每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。
容器就类似与虚拟机中我们创建好的虚拟机系统,之后我们所有的操作都是在容器中进行的,我们的程序也是运行在容器中。

仓库(Repository)

镜像便于传播,而仓库就是专门用来传播这些镜像的地方,他有点类似与Github,或者你可以把他看成一个存放各种镜像的镜像商店
Docker官方的仓库: 他的服务器处于国外,所以下载速度较慢,不过我们可以通过换源解决。
daocloud国内仓库: 国内也有一些优秀的商店,他和Docker官方的仓库的区别类似与Github和Gitee的区别。

Docker基础使用

从hello world开始

在终端中,输入docker run hello-world
ps:这行命令会让docker从官方仓库中拉去hello-world的镜像到本地,并且自动将其实例化成容器。

如图,红色框内所示,为此命令的输出,其说明docker run hello-world命令后的运行过程如下:

   

        此消息显示您的安装工作正常。 

        为了生成此消息,Docker采取了以下步骤:

        1.Docker客户端联系Docker守护程序。

        2.Docker守护进程从Docker中心提取“hello world”映像。

        3.Docker守护进程根据hello world映像创建一个新的容器

         4.Docker守护进程将该输出传输到Docker客户端,Docker客户端将信息发到终端并显示。

Docker基础指令

下面我们通过拉取一个debian镜像来展示docker基础指令的使用

1)拉取镜像

docker pull debian

将自动下载最新的官方debian镜像,下载过程中如下:

 下载完成后:

2)查看已经下载的镜像

docker images

3)加载镜像(docker run)
镜像只是一个只读类型的文件,而我们的环境不可能只是一个这样的文件,所以我们需要把这个镜像加载成我们的环境,也就是让他变成容器。

docker run [可选参数] 镜像名 [向启动容器中传入的命令]
参数    作用
-i         表示以《交互模式》运行容器。
-d        会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
-t         表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
–name    为创建的容器命名。(默认会随机给名字,不支持中文字符!!!)
-v        表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p       表示端口映射,即宿主机端口:容器中端口。 比如:-p 8080:80 就是将容器中的80端口,映射到主机中的8080端口
–network=host    表示将主机的网络环境映射到容器中,使容器的网络与主机相同。每个 Docker 容器都有自己的网络连接空间连接到虚拟 LAN。使用此命令则会让容器和主机共享一个网络空间。

执行如下指令创建容器,即创建一个后台运行的容器,将主机8080端口与容器80端口tcp和udp绑定,容器主机名称为debian-tasktodo,将主机/Volumes/Data/docker/debian-tasktodo/html目录映射到容器的/var/www/html目录,以镜像debian创建容器

docker run -idt -p 8080:80/udp -p 8080:80/tcp --name debian-tasktodo -v /Volumes/Data/docker/debian-tasktodo/html:/var/www/html debian

 此时可在docker desktop的dashboard中看到新创建的容器

单机容器debian-tasktodo还能查看详情,再详情页面单机INSPECT选项卡,可以查看端口、文件映射等信息:

4)查看容器,可以使用命令 docker ps -a

 如果是使用docker ps则只显示运行中的容器。

当然,查看容器还可以在dashboard中直观地查看

5)进入容器的终端,使用命令docker   exec -it 容器名称/容器ID /bin/bash

6)停止容器

docker stop 容器名称/容器ID

7)运行容器

docker start  容器名称/容器ID

8)删除容器

docker rm  容器名称/容器ID

注意:如果容器正在运行,则需要先停止容器再删除

9) 查看已有的镜像docker images

标签含义
REPOSITORY镜像所在的仓库名称
TAG镜像标签
IMAGEID镜像ID
CREATED镜像的创建日期(不是获取该镜像的日期)
SIZE镜像大小

 10)删除镜像docker image rm ...或 docker rmi ...

docker image rm debian


版权声明:本文为found404now原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。