首页 > 其他分享 >Docker-基础

Docker-基础

时间:2022-08-17 15:22:19浏览次数:79  
标签:容器 -- 基础 yum 镜像 Docker docker

1、Docker概述

1.1 Docker是什么

Docker是一个开源的容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
开发这可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任意的Linux机器上。
容器完全是沙盒机制,相互之间不会有任何的接口。
几乎没有性能开销,可以容易地在机器和数据中心运行。
不依赖与任何语言、框架或操作系统、
Docker从17.03版本之后分为CE(communityEditon 社区版)和EE(EnterpriseEditon企业版)

Docker的官网地址https://www.docker.com/
文档地址https://docs.docker.com/
仓库地址https://hub.docker.com/

Docker核心技术
Namespace -- 实现Container的进程、网络、消息、文件系统和主机名的隔离。
Cgroup -- 实现对资源的配额和度量。

Cgroup可以指定实例使用的cpu个数,内存大小等。

1.2 Docker优缺点

优点


运行时的性能可以获取极大提升(经典的案例是提升97%)
管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
敏捷
像虚拟机一样敏捷,而且会更便宜,在bare metal(裸机)上布署像点个按钮一样简单。
灵活
将应用和系统“容器化”,不添加额外的操作系统,
轻量
你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。
便宜
开源的,免费的,低成本的。由现代Linux内核支持并驱动。注* 轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。
生态系统
正在越来越受欢迎,只需要看一看Google的趋势就知道了, docker or LXC.
还有不计其数的社区和第三方应用。
云支持
不计其数的云服务提供创建和管理Linux容器框架。

缺点

能否彻底隔离
在超复杂的业务系统中,单OS到底能不能实现彻底隔离,一个程序的崩溃/内存溢出/高CPU占用到底会不会影响到其他容器或者整个系统?很多人对Docker能否在实际的多主机的生产环境中支持关键任务系统还有所怀疑。 注* 就像有人质疑Node.JS单线程快而不稳,无法在复杂场景中应用一样。
不过可喜的是,目前Linux内核已经针对Container做了很多改进,以支持更好的隔离。

GO语言还没有完全成熟
Docker由Go语言开发,但GO语言对大多数开发者来说比较陌生,而且还在不断改进,距离成熟还有一段时间。此半git、半包管理的方式让一些人产生不适。

被私有公司控制
Docker是一家叫Dotcloud的私有公司设计的,公司都是以营利为目的,比如你没有办法使用源代码编绎Docker项目,只能使用黑匣子编出的Docker二进制发行包,未来可能不是完全免费的。 目前Docker已经推出面向公司的企业级服务(咨询、支持和培训)。

2、Docker安装

2.1 Docker的基本组成

镜像(image)
Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,通过镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container)
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
目前就可以把这个容器理解为就是一个简易的Linux系统
仓库(repository)
仓库就是存放镜像的地方!
仓库分为共有仓库和私有仓库!

2.2 安装环境

试验环境 Centos7

2.2.1 安装

# 1 卸载旧的版本
yum remove docker*
# 2 需要的安装包
yum install -y yum-utils
# 3、设置镜像的仓库
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo   # 默认是国外
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  # 推荐
yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/
# 更新yum软件包索引
yum makecache fast
# 4、安装docker相关引擎       docker-ce  社区版     docker-ee  企业版
yum install docker-ce docker-ce-cli containerd.io
# 5、启动docker
systemctl start docker
	systemctl enable docker
# 6、使用docker version查看是否安装成功
docker version

2.2.2 卸载

# 1、卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2、删除资源
rm -rf /var/lib/docker
#    /var/lib/docker     docker的默认工作路径!!!

2.2.3 加速

阿里云镜像加速器

#可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://qc6m14mr.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.3 常用命令

Docker 命令结构图示

docker命令参数的帮助文档 –help

https://blog.weiyigeek.top/2019/5-6-461.html


#选项
Options:
--config=~/.$docker             #客户端配置文件的位置
-D, --debug=false               #启用Debug调试模式
-H, --host=[]                   #守护进程的套接字(Socket)连接
-h, --help=false                #打印使用帮助
-l, --log-level=info            #设置日志级别
--tls=false                     #
--tlscacert=~/.$docker/ca.pem   #信任证书签名CA
--tlscert=~/.$docker/cert.pem   #TLS证书文件路径
--tlskey=~/.$docker/key.pem     #TLS密钥文件路径
--tlsverify=false               #使用TLS验证远程
-v, --version=false             #打印版本信息并退出


#命令
Commands:
attach          #当前shell下attach连接指定运行镜像
build           #通过$dockerfile定制镜像
commit          #提交当前容器为新的镜像
cp              #从容器中拷贝指定文件或者目录到宿主机中
create          #创建一个新的容器,同run 但不启动容器
diff            #查看$docker容器变化
events          #从$docker服务获取容器实时事件
exec            #在已存在的容器上运行命令
export          #导出容器的内容流作为一个tar归档文件(对应import)
history         #展示一个镜像形成历史
images          #列出系统当前镜像
import          #从tar包中的内容创建一个新的文件系统映像(对应export)
info            #显示系统相关信息
inspect         #提取出容器或者镜像最顶层的元数据
kill            #kill指定$docker容器
load            #从一个tar包中加载一个镜像(对应save)
login           #注册或者登陆一个$docker源服务器
logout          #从当前$docker registry退出
logs            #输出当前容器日志信息
pause           #暂停容器
port            #查看映射端口对应的容器内部源端口
ps              #列出容器列表
pull            #从docker镜像源服务器拉取指定镜像或者库镜像
push            #推送指定镜像或者库镜像至$docker源服务器
rename          # rename 重命名一个容器
restart         #重启运行的容器
rm              #移除一个或者多个容器
rmi             #移除一个或多个镜像(无容器使用该镜像才可以删除,否则使用-f强制删除)
run             #创建一个新的容器并运行一个命令
save            #保存一个镜像为一个tar包(对应load)
search          #在$docker hub中搜索镜像
start           #启动容器
stats           #统计容器使用资源
stop            #停止容器
tag             #给源中镜像打标签
top             #查看容器中运行的进程信息
unpause         #取消暂停容器
version         #查看容器版本号
wait            #截取容器停止时的退出状态值

Run '$docker COMMAND --help' for more information on a command. 

#后台运行
ctrl + p + ctrl + q

标签:容器,--,基础,yum,镜像,Docker,docker
From: https://www.cnblogs.com/min-together/p/16595360.html

相关文章

  • 【Java基础】8种基础数据类型和String类型
    变量必须先声明,后使用1.变量分类(1)按数据类型分(2)按声明的位置分2.基本数据类型和String类型(1)整型整型占用存储空间byte1字节=8bitshort2字节int4......
  • [Python学习笔记]Python基础-12 面向对象编程_属性和方法
    内置属性可以使用内置函数dir查看一个对象支持的所有属性和方法,Python中存在很多的内置属性classPerson(object):def__init__(self,name,age)->None:......
  • [Python学习笔记]Python基础-13 面向对象编程_继承和多态
    继承面向对象的编程有三大特性封装:函数是对语句的封装类是对函数和变量的封装继承类和类之间可以人为,手动的建立父子关系父类的属性和方法,子类可以使用......
  • 如何查看一个docker容器占用空间的大小?
    你如果想要知道,一个运行起来的容器,占用了多少磁盘空间该怎么做呢? 方法很简单。 使用下面的命令dockerps-s  得到下面的结果: 没错SIZE列,就是容器占用......
  • [Python学习笔记]Python基础-14 文件操作
    打开文件python中,使用open内置函数打开并操作一个文件open参数介绍file=open('xxx.txt',r,encoding='utf-8')file:用来指定的打开的文件(文件路径)mode:打......
  • 什么是docker的存储驱动?有什么作用?
    如题目所示的问题,你知道吗? 读完下面的部分,你必然会豁然开朗······ 1、当你执行dockerpull命令拉取一个镜像的时候,镜像在docker主机上是怎么存储的?2、当你执......
  • 架构设计基础设施保障IaaS之计算篇
    IaaS之计算1.1IaaS概述IaaS(InfrastructureasaService)提供托管的IT基础架构,供用户调配处理能力、存储、网络和其他基础计算资源。IaaS提供商运行并管理此基础架......
  • docker 配置代理
    vi~/.docker/config.json{"proxies":{"default":{"httpProxy":"socks5h://192.168.36.106:7890","httpsProxy":"socks5h://19......
  • python菜鸟学习: 8. 集合基础知识
    #-*-coding:utf-8-*-#列表的特性:1,去重;2.关系测试list1=[1,4,6,8,7,8,9]#集合去重list2=set(list1)print(list2)list4=[1,3,5,7,9,11]list3=set(l......
  • docker
    docker常用命令root权限进入容器dockerexec–it–urootpromrtheus/bin/sh复制文件从本地到服务器dockercp本地路径容器id或者容器名字:容器内路径复制......