ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker-基础

2022-08-17 15:34:15  阅读:135  来源: 互联网

标签:容器 -- 基础 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
来源: https://www.cnblogs.com/min-together/p/16595360.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有