Docker基础使用

Docker的概述

**
在这里插入图片描述
1.什么是docker

Docker是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制[1]。
cker利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器(containers)。这可以在单一Linux实体下运作,避免引导一个虚拟机造成的额外负担[2]。Linux核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括行程树、网络、用户ID与挂载文件系统,而核心的cgroup提供资源隔离,包括CPU、存储器、block I/O与网络。从0.9版本起,Dockers在使用抽象虚拟是经由libvirt的LXC与systemd - nspawn提供界面的基础上,开始包括libcontainer库做为以自己的方式开始直接使用由Linux核心提供的虚拟化的设施,
依据行业分析公司“451研究”:“Dockers是有能力打包应用程序及其虚拟容器,可以在任何Linux服务器上运行的依赖性工具,这有助于实现灵活性和便携性,应用程序在任何地方都可以运行,无论是公有云、私有云、单机等。

2.Docker的优势

1.Docker容器运行速度很快,可以在可以秒级实现启动和停止,比传统虚拟机要快很多。Docker解决的核心问题是利用容器来实现类似虚拟机的功能,从而利用更少的硬件资源给用户提供更多的计算机资源

Docker容器技术和传统虚拟机的比较

特性Docker容器虚拟机
启动速度快秒级分钟级
计算能力损耗几乎没用损耗50%左右
性能接近原生弱于原生
系统支持量上千个几十个
隔离性资源限制完全隔离

2.传统虚拟机需要有额外的虚拟机管理程序和虚拟机操作系统层,而docker容器是直接在操作系统层面之上实现的虚拟化

在这里插入图片描述
3.镜像

镜像,容器,仓库是Docker的三大核心概念,其中,Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向Docker容器引擎的只读模板。

4.容器

docker的容器是从镜像创建的运行实例,他可以被启动,停止和删除,每一个容器都是相互隔离,互不可见的,以保证平台的安全性。可以把容器看作是一个简易版的Linux环境,**docker利用容器来运行和隔离应用。

5.仓库

docker仓库是用来集中保存镜像的地方。可以使用push命令将它上传到公用(public)仓库或者私有(private)仓库,目前最大的公共仓库是docker Hub,它存放了数量庞大的镜像供用户下载使用

Docker的安装

docker的双发行版

1.docker-ee
2.docker-ce
下载地址:docker安装

仓库配置文件:docker仓库配置文件
docker程序环境

环境配置文件:
/etc/sysconfig/docker-network
/etc/sysconfig/docker-storage
/etc/sysconfig/docker
Unit File:
/usr/lib/systemd/system/docker.service
Docker Registry配置文件:
/etc/containers/registries.conf
docker-ce:
配置文件:/etc/docker/daemon.json

docker镜像加速
1.docker cn
2.阿里云加速器
3.中国科技大学

{
 "registry-mirrors": ["https://registry.docker-cn.com"]
 }

注册阿里云账号,专用加速器地址获得路径:
https://cr.console.aliyun.com/#/accelerator

docker命令使用

docker search 搜索官方仓库中的共享镜像
[root@bogon /]# docker search mysql
nameSCRIPTIONSCRIPTIONSTARTOFFICIAL
名称镜像描述星级是否官方创建是否主动创建
 docker pull 从网络下载镜像到本地来使用
[root@bogon /]# docker pull centos:centos7.6.1810
docker images 查看下载到本地的所有镜像
[root@docker /]# docker images
PEROSITORYTAGIMAGE IDCREATEDSIZE
镜像所属的仓库镜像的标签信息,用于标识同一个仓库的不同镜像镜像的唯一ID号镜像的创建时间镜像大小
docker inspect 获取镜像或容器的详细信息
[root@docker /]# docker inspect web1
docker tag 为本地镜像添加新的标签
[root@docker /]# docker tag nginx:1.14-alpine web:nginx
docker rmi 删除镜像
[root@docker /]# docker rmi nginx:1.14-alpine & dcoker rmi 8a2fb25a19f5
镜像的存出和导入
docker save -o || docker load < 存出镜像和导出镜像
[root@docker /]# docker save -o redis redis:4-alpine **存出镜像**
[root@docker /]# docker load < redis **导出镜像**
docker push 上传镜像
上传镜像:1.登录 docker login 退出登录:docker logout 账号:cxkctrl 密码:.......
[root@docker /]# docker push cxkctrl/shiyan_1:redis  ##(前面的cxkctrl/shiyan_1是我的私人账号和仓库名称) 
docker create 创建容器
-t:让容器分配一个伪终端 -i:让容器的输入保持打开状态
[root@docker /]# docker create -it nginx:1.14-alpine /bin/sh
docker ps 查看开启的容器 -a 查看所有容器 -n=x 查看指定行的容器
--filter, -f:过滤器条件显示
name=
status={stopped|running|paused}
[root@docker /]# docker ps | docker ps -a | docker ps -n=1
docker start 启动容器
[root@docker /]# docker start web1  ##可指定容器的ID/名称
docker stop 停止容器
[root@docker /]# docker stop web1  ##可指定容器的ID/名称
[root@docker /]# docker kill centos ##强制停止容器
docker stop $(docker ps -q) ##停用全部的容器
docker run 创建并运行容器
-d:后台运行容器  --name 定义容器的名字(可选,不自定义会随机定义名字)
--rm:容器运行终止即自行删除
--network BRIDGE:让容器加入的网络;默认为docker0;
[root@docker /]# docker run -itd --name centos centos:centos7 /bin/bash
docker exec 进入容器 或者 docker attach 进入容器 
[root@docker /]# docker exec -it centos /bin/bash  ##可指定容器的ID/名称
[root@docker /]# docker attach ceshi_1  ##一旦退出容器就是自动停止容器
容器的导出和导入
docker export 容器的id/名称 > 文件名 | cat 文件名 | docker import - 生成的镜像名称和标签
[root@docker /]# docker export centos > Centos7.tag ##导入容器
可以通过scp来进行传递生成的容器文件
[root@docker /]# cat Centos7.tag | docker import - centos:centos7  ##导出容器
docker rm 容器的删除 -f 强制删除
[root@docker /]# docker rm web1
docker rm $(docker ps -aq)  ##删除全部的容器

docker的数据管理

1.管理docker容器中的数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(Data Volumes Containers)

1.数据卷
	数据卷是一个供容器使用的特殊目录,位于容器中,可以将宿主机的目录挂到数据卷上,对数据卷的修改操作立刻可见。
2.创建数据卷
		在docker run 命令中使用-v选项可以在容器内创建数据卷。
			命令格式:docker run -it -v /宿主机绝对目录:/容器内目录 镜像名
				例如:[root@www /]# docker run -it -v /data/shuju/ceshi/:/data1 centos:centos7 
3.数据卷容器
	注意:(数据卷是一个普通容器,专门提供数据卷给其他容器,)
		使用--volumes-form来挂载web容器中的数据卷到新的容器。
			命令格式:docker run -it --volumes-from 镜像名 --name 新的名字 新的镜像
				例如:[root@www /]# docker run -it --volumes-from ceshi_1 --name ceshi_2 centos:latest /bin/bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值