docker学习篇(一)

一、Linux上安装docker

##首先选择安装docker的版本。当前有两个版本可供选择:社区版(Communtiy Edition,CE)和企业版(Enerprise Edition,EE)。
Docker CE是免费的,并且是接下来实例中将要使用的版本。Docker EE包含Docker CE中的全部功能,还包括了商业支持以及与其他Docker产品的集成,比如Docker可信镜像库和通用控制面板。
下面的例子使用wget命令来运行一个Shell脚本,完成Docker CE的安装。更多其他再Linux上安装Docker的方式,可以打开Docker主页面,单击页面中Get Started 按钮来获取。
注:在开始下面步骤之前,要确认系统升级到最新的包,并且打了相应的安全补丁。
(1)在Linux机器上打开一个新的Shell
(2)使用wget从https://get.docker.com获取并运行Docker安装脚本,然后采用Shell中管道(pipe)的方式来执行脚本。

	wget -q https://get.docker.com/ | sh 

(3)最好通过非root用户来使用Docker。这是需要添加非root用户到本地Docker Unix组当中。下面的命令展示了如何创建用户并添加到用户组docker中,以及如何确认操作时否执行成功。

	useradd  npoulton
	groupadd  docker
	usermon  -aG  docker  npoulton
	cat  /etc/group |grep docker     #查看是否成功

(4) 启动docker并查看版本信息等

		systemctl start docker   	#启动docker
		docker --version			#查看docker版本信息
		docker image ls				#查看docker镜像

二、docker自动设置direct-lvm 和存储驱动的选择

下面的步骤会将docker配置存储驱动为Device Mapper , 并使用direct-lvm模式。
(1)将下面的存储驱动配置添加到/etc/docker/daemon.json当中

	{
	        "storage-driver": "devicemapper",
	        "storage-opts":[
	                "dm.directlvm_device=/dev/vda",         # 设置了块设备的位置。为了存储的最佳性能以及可用性,块设备应当位于高性能存储设备(如本地SSD)或者外部RAID存储阵列之上。
	                "dm.thinp_percent=95",					# 设置了镜像和容器允许使用的最大存储空间占比,默认是95%。
	                "dm.thinp_metapercent=1",   			# 设置了元数据存储(MetaData Storage)允许使用的存储空间大小,默认是1%.
	                "dm.thinp_autoextend_threshold=80",   	# 设置了LVM自动扩展精简池的阈值,默认是80%。
	                "dm.thinp_autoextend_percent=20",		# 表示当触发精简池(thin pool)自动扩容机制的时候,扩容的大小应当占现有空间的比例。
	                "dm.directlvm_device_force=false"    	# 允许用户决定是否将快设备格式化为新的文件系统
							]
	}

(2)重启docker

	systemctl restart docker

三、Docker镜像

将Docker镜像理解为一个包含了OS文件系统和应用的对象会很有帮助。如果实际操作过,就会认为与虚拟机模板类似。虚拟机模板 本质上是处于关机状态的虚拟机。在Docker世界中,镜像实际上等价于未运行的容器。如果是一位开发者,可以将镜像比作类(Class)。
在docker主机上运行docker image ls命令可以查看本机上docker的所有镜像

如果是刚完成Docker安装的主机,或者Play With Docker,那么Docker主机中应当没有镜像,命令输出内荣显示都是空白的。
在Docker主机上获取镜像的操作被称为拉取(pulling)。如果使用Linux,那么会拉取ubuntu:latest镜像;如果使用windows,则会拉取microsoft/powershell:nanoserver镜像。
在这里插入图片描述
再次运行docker image ls命令来查看刚刚拉取的镜像
在这里插入图片描述
刚才拉取的ubuntu镜像有一个精简版Ubuntu Linux文件系统,其中包含了带有PowerShellde的Windows Nano Server操作系统。如果拉取了如nginx或者microsoft/IIs这样的应用容器,会得到一个包含操作系统的镜像,并且再镜像中还包括运行Nginx或iis所需的代码。重要的是,Docker的每个镜像都有自己的唯一ID。 用户可以通过引用镜像的ID或名称来使用镜像。如果用户选择使用镜像ID,通常只需要输入ID开头的几个字符即可——因为ID是唯一的,Docker知道用户想引用的具体镜像是那个。

四、Docker容器

到目前为止拉取镜像就已经完成了,可以使用docker container run 命令从镜像来启动容器。在linux中启动容器的命令如下。
在这里插入图片描述
docker container run 告诉Docker daemon启动新的容器。其中-it 参数告诉Docker开启容器的交互模式并当前的Shell连接到容器终端。接下来,命令告诉Docker,用户想基于ubuntu:latest镜像启动容器(如果用户使用Windows,则是基于microsoft/powershell:nanoserver镜像)。最后,命令告诉Docker,用户想要再容器内部运行那个进程。对于Linux示例来说运行Bash shell,对于Windows示例来说则是运行PowerShell。
在容器内部运行ps命令查看当前正在运行的全不进程。
Linux示例如下。
在这里插入图片描述
Linux容器中仅包含两个进程。
PID 1:代表/bin/bash进程,该进程是通过docker container run命令来通知容器运行的。
PID 9:代表ps -elf进程,查看当前运行中进程所使用的命令/程序。
命令输出展示的ps -elf 进程存在一定的误导,因为这个程序再ps命令退出后就结束了。这意味着容器内长期运行的进程其实只有/bin/bash。可以通过docker container ls 命令查看系统内全部处于运行状态的容器。
在这里插入图片描述

五、连接到运行中的容器

执行docker container exec命令可以将shell连接到一个运行中的容器终端。因为之前示例中的容器扔再运行,所以可以创建到该容器的新连接。

	docker container exec -it nostalgic_yalow bash

在这里插入图片描述
通过docker container stop 和docker container rm 命令来停止并杀死容器。切记需要将示例中的名称/ID替换为自及对应的名称和ID。
在这里插入图片描述
最后通过docker container ls 命令,并指定-a参数来确认容器已经被成功删除。添加-a的作用是让docker列出所有的容器,甚至包括那些停止状态的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值