您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

Docker初学者入门--安装笔记

时间:2020-08-18 14:50:23  来源:  作者:

一、准备一台linux系统,本次为centos-6.8(64位),并且配置好网络,将虚拟机配置为NAT方式共享windows网络;

 

二、简单了解一下Docker:

 

Docker出现的原因?

因开发与运维之间会因为环境和配置导致程序无法运行。(从OS,到运行环境,再到应用配置....)

 

docker使得软件可以带环境安装,安装时,把原始环境完全复制(由下而上打包)。开发人员利用Docker可以消除协作编码时“在自己机器可正常工作”问题。(一次封装,到处运行) 实现跨平台,跨服务器,简化了操作。

三、 Docker是什么?

Docker解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

一次构建、随处运行,可以:更快速的应用交付和部署;更便捷的升级和扩缩容;更简单的系统运维;更高效的计算资源利用。

Docker的优势:

1,轻量,秒级的快速启动速度;2,简单、易用,活跃的社区;3,标准统一的打包/部署/运行方案;4,镜像支持增量分发,易于部署;

5,易于构建,良好的REST API, 也很适合自动化测试和持续集成; 6,性能,尤其是内存和IO的开销。

四: 虚拟机缺点:资源占用多,冗余步骤多,启动慢。

 

Docker提供另一种虚拟化技术:Linux容器(LXC),不需要捆绑一整套系统,只需要软件工作所需的库资源和设置。

----------------------------------

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。

容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。

----------------------------------

比较,Docker和传统虚拟化方式的不同之处:

.传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;

.而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

五、Docker 安装:

Docker支持以下的CentOS版本:

CentOS 7 (64-bit)

CentOS 6.5 (64-bit)或更高的版本

前提条件:

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

Docker运行在CentOS 7上,要求系统为64位、系统内核版本为3 10以上

Docker运行在CentOS-6.5或更高的版本的CentOS上,要求系统为64位、系境内核版本为2.6.32-431或更高版本

查看系统的内核:

uname命令川于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

[root@promote ~]# uname -r

2.6.32-642.el6.x86_64

[root@promote ~]# cat /etc/redhat-release

-----------------------------------

六、 docker_centos6 的安装: (本次在node04上(192.168.89.10)---这是本人自己机器的配置,学者可对照改为自己的)

 

1,yum install -y epel-release (依赖库)

2, yum install -y docker-io

------------------------------------------------

出现问题:Another App is currently holding the yum lock; waiting for it to exit.

处理:可能是系统自动升级正在运行,yum在锁定状态中。

已经有一个yum进程在运行了,使用kill干掉它:

# kill -s 9 25960

# ps aux|grep yum

root 6744 0.0 0.0 103260 900 pts/1 S+ 14:59 0:00 grep yum

root 25960 0.0 0.0 0 0 ? Z Sep19 0:01 [yumBackend.py] <defunct>

很遗憾,kill对付不了它,那怎么办呢?

可以通过强制关掉yum进程:

#rm -f /var/run/yum.pid

然后就可以使用yum了。

----------------------------------------------------

-------如果出现以下错误-----

No package docker-io available.

Error: Nothing to do:

原因:直接使用命令: yum install docker-io 是会报错的!!! 提示:No package docker-io available.

解决办法:需要先安装yum 源 正确版:

yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

----OK ******************(安装成功)

3,安装后的配置文件:/etc/sysconfig/docker (在命令行下用ls /etc/sysconfig/docker 查看)

 

4, 启动Docker后如服务:service docker start.

5, docker version验证:出现如下信息表示成功安装:

[root@promote ~]# docker version

Client version: 1.7.1

Client API version: 1.19

Go version (client): go1.4.2

Git commit (client): 786b29d

OS/Arch (client): linux/amd64

Server version: 1.7.1

Server API version: 1.19

Go version (server): go1.4.2

Git commit (server): 786b29d

OS/Arch (server): linux/amd64

[root@promote ~]#

------------------------------------------------------以上安装完成,以下为操作:------------------------------------

七:操作Helloworld.

理论上应该从https://hub.docker.com上拉镜像,但速度太慢,所以用国内的镜像加速版。

阿里云镜像加速器步骤:

1, 是什么 https://dev.aliyun.com/search.html(转到:https://promotion.aliyun.com/ntms/act/kubernetes.html)

a,注册一个属于自己的阿里云账户(可复用淘宝账号)

b, 获得加速器地址连接 (登陆阿里云开发者平台后获取加速器地址)

在容器镜像服务-->快速入门-->官方镜像加速---> 点击“容器镜像服务控制台”-->前往开通。

(容器镜像服务控制台后左侧的加速器帮助页面就会显示为您独立分配的加速地址):

 

到了“容器镜像服务”后,右边会有一个“设置Registry登录密码”,(设置为:admin****(需要自定义))

找到镜像中心---> 镜像加速器-->CentOS, 看到我的加速器地址为:https://z2jkh8aj.mirror.aliyuncs.com

c,配置本机Docker运行镜像加速器

cat /etc/sysconfig/docker

vi /etc/sysconfig/docker 在other_args="" 上修改,内容如下:

------------------------

# /etc/sysconfig/docker

#

# Other arguments to pass to the docker daemon process

# These will be parsed by the sysv initscript and appended

# to the arguments list passed to docker -d

other_args="--registry-mirror=https://z2jkh8aj.mirror.aliyuncs.com"

DOCKER_CERT_PATH=/etc/docker

# Resolves:

DOCKER_NOWARN_KERNEL_VERSION=1

---------------------

wq保存,重启docker.

d,重新启动Docker后台服务:service docker restart

e, Linux系统下配置完加速器需要检查是否生效,

命令为: ps -ef|grep docker

[root@promote ~]# ps -ef|grep docker

root 27217 1 4 06:44 pts/0 00:00:03 /usr/bin/docker -d --registry-mirror=https://z2jkh8aj.mirror.aliyuncs.com

root 27267 26600 0 06:45 pts/0 00:00:00 grep docker

八、演示HelloWorld:

 

1, docker run hello-world:

[root@promote ~]# docker run hello-world

Unable to find image 'hello-world:latest' locally ---- 表示本地没有,要从阿里云上下载一个hello-world的镜像,并在容器内运行

latest: Pulling from hello-world

65b27d3bd74d: Pull complete

9f5834b25059: Pull complete

Digest: sha256:fb158b7ad66f4d58aa66c4455858230cd2eab4cdf29b13e5c3628a6bfc2e9f05 (ID号)

Status: Downloaded newer image for hello-world:latest

Hello from Docker! ------表示拉取成功。

This message shows that your installation appears to be working correctly.

...............

输出以上提示后,hello world 就会停止运行,容器自动终止。

如果云上也没有所需的镜像,会给出错误提示。

九、 Docker常用命令:

1,帮助命令:

docker version, docker info , docker --help(查看各种命令)*****

 

2, 镜像命令:

 

(1) docker images: 列出本地主机上的镜像

 

REPOSITORY :表示镜像的仓库源 TAG: 镜像的标签

IMAGE ID: 镜像ID CREATED:镜像的创建时间 VIRTUAL SIZE: 镜像大小

同一仓库源可以有多个TAG,代表这个仓库源的不同个版本,我们使用REPOSITORY:TAG来定义不同的镜像。

如果你不指定一个镜像的版本标签,例如你只使用ubuntu,docker将默认使用ubuntu:latest镜像

options说明:

-a :列出本地所有的镜像(含中间映像层(如里面的none等....));

-q: 只显示镜像ID; (或-qa)

--digests: 显示镜像的摘要信息; --no-trunc: 显示完整的镜像信息。

(2) docker search [OPTIONS] 某个镜像的名字,(http://hub.docker.com)查询的时候,是从hub.docker.com上查,拉取的时候可以从上面配置的阿里云上下。 例: 命令:docker search Tomcat

OPTIONS说明: --no-trunc: 显示完整的镜像描述; -s: 列出收藏数不小于指定值的镜像;(***** 一般用点赞数多的)

--automated: 只列出automated build 类型的镜像

docker search -s 30 tomcat : 查询出点赞数超过30的tomcat. ( docker search -s 30 --no-trunc tomcat )

 

(3) docker pull: 下载镜像

例: docker pull tomcat 等价于 docker pull tomcat:lastest (:lastest 可省略) (docker pull tomcat:5.9 ---表示拉取tomcat 5.9版本)

完成后查看:

[root@promote ~]# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

tomcat latest 7658501bf516 5 days ago 506.8 MB

hello-world latest 9f5834b25059 11 months ago 1.84 kB

(4) docker rmi 镜像ID: 删除某个镜像

docker rmi hello-world (=docker rmi hello-world:lastest)

[root@promote ~]# docker rmi hello-world

Error response from daemon: Conflict, cannot delete 9f5834b25059 because the container 2084769ea199 is using it, use -f to force

Error: failed to remove images: [hello-world]

出现以上信息是因为前面运行了hello-world, 所以无法删除,可以用-f强制删除。 (docker rmi -f hello-world)

[root@promote ~]# docker rmi -f hello-world

Untagged: hello-world:latest

Deleted: 9f5834b25059239faef06a9ba681db7b7c572fc0d87d2b140b10e90e50902b53

Deleted: 65b27d3bd74d2cf4ea3aa9e250be6c632f0a347e8abd5485345c55fa6eed0258

(可以发现删除了两层, 说明镜像是分层的)



Tags:Docker   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  Tags: Docker  点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  Tags: Docker  点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  Tags: Docker  点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  Tags: Docker  点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  Tags: Docker  点击:(48)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  Tags: Docker  点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  Tags: Docker  点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  Tags: Docker  点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  Tags: Docker  点击:(117)  评论:(0)  加入收藏
今天在虚拟机里面安装了docker,利用docker起了一个centos。里面配置完成openssh后,利用xsheel连接docker里面的centos,发现特别慢,差不多要的1分钟才能连接上去。这肯定是有问题...【详细内容】
2021-07-21  Tags: Docker  点击:(131)  评论:(0)  加入收藏
▌简易百科推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(33)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  石老师小跟班    Tags:Redis主从复制   点击:(117)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条