陈奇网络工作室

Docker的详细说明和安装

云计算

首先,揭开docker的神秘面纱

Docker是一个开源工具,用于运行在Linux容器中的应用程序。它是2013年诞生的轻量级“虚拟机”。短短几年,它已经成为开源社区最热门的项目。

那么Docker为什么这么火呢?看下图就知道了:

Docker作为一款轻量级虚拟机,相比传统虚拟机优势明显。

Docker的优势很多,这和操作系统虚拟化本身的特点是分不开的。传统虚拟机需要额外的hypervisor和虚拟机操作系统层,而docker container直接在操作系统层进行虚拟化。

Docker使用场景

现在,开发者需要能够轻松地创建运行在云平台上的应用,并且必须与底层硬件分离,同时需要随时随地获取这些资源,而这正是Docker所能提供的。Docker的容器技术可以轻松地为主机上的任何应用程序创建轻量级、可移植和自给自足的容器。通过这个容器打包应用程序意味着简化了重新部署和调试的琐碎重复工作,大大提高了工作效率。比如服务器从腾讯云迁移到阿里云,如果采用Docker容器技术,迁移只需要在新的服务器上启动需要的容器。

二、Docker的核心概念:

1.镜像

Docker的镜像是创建容器的基础,类似于虚拟机的快照。可以理解为Docker容器引擎的只读模板。例如,一个映像可以是一个完整的CentOS操作系统环境,称为CentOS映像;它可以是安装了mysql的应用程序,称为MySOL映像,等等。

Doacker提供了一种简单的机制来创建和更新现有的图像。用户还可以从互联网上下载完整的应用程序映像并直接使用。

步骤2:容器

码头工人的集装箱(集装箱!是从镜像创建的运行实例,可以启动、停止和删除。创建的每个容器都是一个隔离的、不可见的平台,可以确保安全性。容器可以看作是Linux环境的简单版本,Docker使用容器来运行和隔离应用程序。

3.仓库

Docker存储库是集中存储图像的地方。创建自己的映像后,可以使用push命令将它上传到public repository (Pbli)或Private repository (private),这样下次在另一台机器上使用这个映像时,只需将它从存储库中拉下来即可。

仓库注册服务器是存储仓库的地方,其中包含多个仓库。每个仓库集中存储某一类图像,用不同的标签来区分。目前最大的公共仓库是Docker Hb,存储了大量的图片供用户下载使用。

第三,安装Docker

Centos系统下安装Docker有两种方式:一种是使用curl获取Docker的安装脚本并安装。另一种是用百胜仓库安装Docker。

注意:Docker目前只能支持64位操作系统。

注意:Docker目前只能支持64位操作系统。

注意:Docker目前只能支持64位操作系统。

这里我使用Docker自带的YUM源码进行安装。

开始安装:

[root @ test/]# yum-y Install docker #安装docker

[root @ test/]# systemctlstartdocker #启动服务

[root @ test/]# systemctlenableDocker #设置为引导启动。

已创建从/etc/systemd/system/multi-user . target . wants/docker . service到/usr/lib/systemd/system/docker . service的符号链接。

安装的Docker有两个程序:Docker服务器和Docker客户端。Docker服务进程管理所有的容器。Docker客户端作为Docker服务器的远程控制器,可以用来控制Docker服务器的进程。大多数情况下,Docker服务器和客户端运行在同一台机器上。

[root@test /]# docker版本

客户:

版本:1.13.1

API版本:1.26

包版本:docker-1 . 13 . 1-75 . git 8633870 . el7 . centos . x86 _ 64

Go版本:go1.9.4

Git提交:8633870/1.13.1

建成时间:Fri 2018年奥运会年9月28日19时45分08秒

操作系统/架构:linux/amd64

服务器:

版本:1.13.1

应用程序接口版本:1.26(最低版本为1.12)

包版本:docker-1。13 .1-75 .git 8633870。el7。centos。x86 _ 64

去版本:go1.9.4

饭桶提交:8633870/1.13.1

建成时间:Fri 2018年奥运会年9月28日19时45分08秒

操作系统/架构:linux/amd64

实验性:错误

码头工人镜像操作

码头工人运行容器前需要本地存在对应的镜像,如果不存在本地镜像,码头工人就会尝试从默认镜像仓库https://hub.docker.com处下载,这是一个由码头工人官方维护的一个公共仓库。

1、搜索镜像:

[root@test /]# docker search dhcp #命令格式码头工人搜索关键字

索引名称描述明星官方自动

码头工人。木卫一docker.io/networkboot/dhcpd适合为你运行动态主机配置协议服务器.43[好]

运行在阿尔卑斯Linux 15上的码头工人。io docker.io/joebiellik/dhcpd DHCP服务器[好的]

码头工人。木卫一docker.io/gns3/dhcp一个使用dnsmasq 3的GNS 3 DHCP容器[好的]

..//省略部分内容

2、获取镜像:

搜索到符合的镜像,可以使用码头工人拉动进行下载到本地

[root@test /]# docker拉docker.io/networkboot/dhcpd

使用默认标签:最新

试图拉库docker.io/networkboot/dhcpd.

最新:从docker.io/networkboot/dhcpd拉

898c46f3b1a1:下载5.602兆字节/32.47兆字节

63366dfa0a50:下载完成

041d4cd74a92:下载完成

6e1bee0f8701:下载完成

114483241095:下载3.693兆字节/6.702兆字节

ef446bdcb1f0:等待

3、查看镜像信息:

[root@test /]# docker图像

存储库标记图像身份证明创建的大小

docker.io/networkboot/dhcpd最新52cbff801df2 8个月前105兆字节

从回显的信息中可以读出:

存储库:镜像属于的仓库

标签:镜像的标签信息,标记同一个仓库的不同镜像

图像ID:镜像的唯一身份证明号,唯一标识了该镜像

创建时间:镜像创建时间

虚拟大小:镜像大小

用户可根据镜像的唯一标识身份证明号,获取镜像的详细信息:

[root @ test/]# docker inspect 52 cbff 801 df 2

[

{

id:sha 256:52 cbff 801 df 2c 6 e 2 da 3866d 9 f 9476 f 20 f 190 f 64 a 0 e 886 FBD fa 79d 843 befa 666 a、

报告标签:[

docker.io/networkboot/dhcpd:latest

],

....//省略部分内容

镜像的详细信息包含了创建时间、系统版本、主机名、域名、用户、卷、标签、操作系统、设备身份证明等各种信息。

为了方便使用,可为本地的镜像添加新标签:

[root@test /]# docker标签docker.io/networkboot/dhcpd DHCP:DHCP

[root@test /]# docker图像

存储库标记图像身份证明创建的大小

dhcp dhcp 52cbff801df2 8个月前105兆字节

docker.io/networkboot/dhcpd最新52cbff801df2 8个月前105兆字节

4、删除镜像:

命令格式:

码头工人无线电磁指示器(Radio Magnetic Indicator的缩写)仓库名称:标签

或者

码头工人无线电磁指示器(Radio Magnetic Indicator的缩写)镜像身份证明号

当使用码头工人无线电磁指示器(Radio Magnetic Indicator的缩写)命令后面跟上镜像的身份证明号时,必须确保该镜像没有被容器正在使用才能进行,删除时系统会先删除所有指向该镜像的标签,然后删除该镜像文件本身。如果该镜像已经被容器使用,正确的做法是先删除依赖该镜像的所有容器,再去删除镜像。

5、存出和载入镜像:

存出

[root @ test/]# docker save-o/tmp/DHCP docker.io/networkboot/dhcpd

[root@test /]# ll -d /tmp/dhcp

-rw-1根根107891712 11月25日17:56 /tmp/dhcp

载入

[root@test tmp]# docker加载-输入动态主机配置协议

[root@test tmp]# docker load dhcp

6、上传镜像:

本地存放的镜子越来越多,需要指定专门的地方存放这些镜子,——号仓库。目前比较方便的是默认上传到DockerHub的官方仓库,需要使用公共仓库注册账号。您可以使用docker登录命令输入您的用户名、密码和电子邮件地址来注册和登录。在上传图片之前,需要在本地图片上添加一个新的标签,然后使用docker push进行上传。

例如,在公共仓库中注册了一个帐户。在本例中,帐号是test,镜像标签是docker/dhcp:centos7.3。

(1)首先用账号登录官方仓库:

[root@test /]# docker登录

使用您的Docker ID登录,从Docker Hub推送和提取图像。如果您没有Docker ID,请前往https://hub.docker.com创建一个。

用户名:test #输入帐号。

密码:#输入密码。

登录成功

(2)登录成功后,可以上传图片:

[root @ test/]# docker push docker/DHCP:centos 7.3

码头集装箱操作

容器是Docker的另一个核心概念。简单来说,容器就是一个镜像的运行实例,一个独立运行的应用程序或一组应用程序及其必要的运行环境,包括文件系统、系统类库和shell环境。镜像是一个只读模板,容器会给这个只读模板一个额外的可写层。

1、容器的创建和启动:

Docker的创建是将图像加载到容器中的过程。Docker的容器非常轻量级,用户可以随时创建或删除它。默认情况下,新创建的容器是停止的,并且没有程序在运行。需要在其中启动一个流程来启动容器。这个进程是容器的唯一进程,所以当进程结束时,容器也会完全停止。停止的容器可以使用原始修改重新启动。

[root @ test/]# docker Create-it docker.io/networkboot/dhcpd/bin/bash #创建容器。

08ab 448 CD 0 be 320 b 24d 6878 b 377 BFA 6957127 c 7 FFB 4 c 7 e 050 e 64340 dee 1562

# -i表示保持容器的输入打开;-t表示让Docker分配一个伪终端。

如果错误“警告:IPv4转发被禁用。网络工作是不行的。”要在此处创建容器,请使用vi编辑器打开/usr/lib/sysctl . d/00-system . conf文件,向其中添加net.ipv4.ip_ forward=1,然后使用service network start命令重新启动网络服务。

用docker create命令创建一个新容器将返回一个惟一的ID。

[root@test /]# docker ps -a #查看所有容器的运行状态-a可以列出系统上次启动的容器。

容器ID映像命令创建的状态端口名称

08ab 448 cd0be docker.io/networkboot/dhcpd/entry point . sh/b.5分钟前创建了keen_payne

命令格式:docker开始容器的ID/名称。

[root @ test/]# docker start 08 ab 448 CD 0 be #可以跟在容器的ID和名称后面。

08ab448cd0be

[root @ test/]# docker PS-a | grep 08 ab 448 CD 0 be

08ab 448 cd0be docker.io/networkboot/dhcpd/entry point . sh/b.8分钟前大约一分钟前基恩佩恩

#容器启动后,您可以看到容器状态一栏已经变为UP,表明容器已经处于启动状态。

2.容器的操作和停止:

[root @ test/]# docker stop 08ab 448 CD 0 be

08ab448cd0be

[root@test /]# docker ps -a

容器ID映像命令创建的状态端口名称

08ab 448 cd0be docker.io/networkboot/dhcpd/entry point . sh/b.10分钟前退出(0) 5秒前keen_payne

#检查容器的运行状态,可以看到容器处于现有和中止状态。

3、容器装入:

[root @ test/]# docker exec-it 08ab 448 CD 0 be/bin/bash

# -i表示保持容器的输入打开;-t表示让Docker分配一个伪终端。

Root @ 08ab448cdbe:/# ls #已进入容器。

bin boot dev entry point . sh etc home lib lib 64 media mnt opt proc root run sbin SRV sys tmp usr var

root@08ab448cd0be:/# exit

出口

[root@test /]#

4.集装箱的进出口:

用户可以将任何Docker容器从一台机器迁移到另一台机器。在迁移的过程中,需要先将创建好的容器导出到一个文件中,这可以通过使用docker export命令来实现,不管容器是在运行还是停止。导出后,导出的文件可以转移到其他机器上,通过相应的导入命令可以迁移容器。

命令格式:dockereexport容器ID/name文件名。

[root @ test/]# docker export 08ab 448 CD 0 becents 7 DHCP

[root@test /]# ll -d centos7dhcp

-rw-r-r-1 root root 87825920 11月25日19:58 centos7dhcp

导出的文件从机器A复制到机器B,然后使用docker import命令导入,成为镜像。

命令格式:cat文件名| dockeriemport生成的图像名:label。

[root @ test/]# cat centos 7 DHCP | docker import-centos 7:DHCP

sha 256:e 7193 f 77 c 973 a 89 dd2d 1046 f 09 EB 4328798 f 4 ee 9 dff 92 ad 13514 FB 7268 bc3c 27

[root @ test/]# docker images | grep centos 7

centos7 dhcp e7193f77c973 17秒前84.7 MB

5.删除容器:

命令格式:docker rm容器ID/名称。

[root @ test/]# docker stop 08ab 448 CD 0 be

08ab448cd0be

[root @ test/]# docker RM 08 ab 448 CD 0 be

08ab448cd0be

[root@test /]# docker ps -a

容器ID映像命令创建的状态端口名称

#如果删除正在运行的容器,可以添加-f选项来强制删除,但建议在删除之前停止该容器。

docker的默认存储目录是//var/lib/docker,Docker,这里存放了Docker的所有内容如图片、容器、日志等。可以使用大容量分区单独存储这些内容,一般选择建立LVM逻辑卷,避免Docker运行过程中存储目录容量不足的问题。

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3