Docker
Posted abc小辉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker相关的知识,希望对你有一定的参考价值。
概念-docker:轻量级的虚拟化技术,容器虚拟化方案中的佼佼者
容器的概念:
容器有效的将由单个操作系统管理的资源划分到孤立的组中,
以便更好地在孤立的组之间平衡有冲突的资源使用需求,
与虚拟化相对,即不需要指令级模拟,也不需要即时编译,
容器可以在核心CPU本地运行指令,而不需要任何解释机制,
还避免了准虚拟化和系统调用替换中的复杂性
docker与虚拟机比较
相比虚拟机的优势:
速度快, 占资源少, 操作简单, 自动化
一、安装部署Docker
yum -y install docker
systemctl start docker.service
ifconfig --会看到一个docker的网卡 172.17.0.1这个是官方内置的写死的
因为docker镜像是通过nat方式连外网的,所以本机还需要打开转发功能
打开本地路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
重启network服务
systemctl restart network
查看是否修改成功
sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了
配置国内dockerhub镜像源点
https://cr.console.aliyun.com/ ->打开,登陆->管理中心->镜像加速
二、Docker镜像(Image)
类似于虚拟机镜像,面向docker引擎的只读模板,包含文件系统
镜像是创建docker容器的基础,通过版本管理和增量的文件系统来创建和更新现有镜像
search:检索在线的centos镜像
docker search 镜像名称
例:
docker search centos --查找centos的镜像
docker search centos:5 --指定查询centos5的镜像
pull:下载镜像
docker pull 镜像名称
--automated=false 仅显示自动创建的镜像
--no-trunc=false 输出信息不截断显示
-s, --stars=0 指定评价星级以上的镜像
列出本机所有镜像
docker images
来自哪个仓库 标签信息 镜像ID 创建时间 镜像大小
例:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos 6 ea096efd33cc 3 weeks ago 194.3 MB
docker.io/centos latest d123f4e55e12 3 weeks ago 196.6 MB
tag:给镜像添加别名标签
docker tag 镜像名称:标签 新镜像名称:新标签名(语法)
例子:
docker tag docker.io/centos:latest jinhui/redis
docker commit :构建镜像一个新的镜像
docker commit -m "描述" -a "创建者 <创建者邮箱>" 容器名称 镜像名称(语法)
-a:指定创建者信息
-m:描述
例子:
docker commit -a "jinhui <778686980@qq.com>" cl jinhui/redis:latest
docker images --就可以看出上一条命令创建的镜像
rmi:删除镜像
docker rmi 镜像名称(语法)
例子:
docker rmi jinhui/redis:net-tools
save: 导出镜像
docker save 镜像名称 -o 导出镜像名.tar
例:
docker save jinhui/redis:net-tools -o redis-net-tools.tar
load:导入镜像
docker load -i 镜像包名称.tar
例:
docker load -i centos-net-tools.tar
三、Docker容器(Container)
run:运行一个容器
docker run --name 自定义容器名称 -it 镜像名称(语法名称)
-i 让容器的标准输入保持打开
-t 让docker分配一个伪终端并绑定到容器的标准输入上
-d 容器在后台运行
--name 指定容器名称
-p 允许外部访问容器需要暴露的端口
--rm 容器退出自动删除 不能和-d使用
例子:
docker run --name c1 -it centos:latest
退出来方法:Ctrl+p 再 Ctrl+q
exec:连接一个启动的容器
docker exec -ti 容器ID 命令
例子:
docker exec -ti c1 bash
ps: 显示正在运行的容器
docker ps --显示正在运行的容器
docker ps -a --显示所有容器,包括停止的
start: 启动一个容器
docker start 容器名称
例:
docker start c1
stop:停止一个容器
docker stop 容器名称
例:
docker stop c1
rm :删除一个容器
docker rm 容器名称
例:
docker rm c1
四、Docker仓库(Repository)
类似于代码仓库,存储镜像文件的场所
最大的公开仓库: Docker Hub(http://hub.docker.com)
从仓库中下载镜像 docker pull
从仓库中上传镜像 docker push
从仓库中搜索镜像 docker search
创建私有仓库
可以通过registry容器创建本地私有仓库
docker需要ssl认证才可以正常使用私有仓库,可以安装签发证书
还有一种方法强制使用普通方式(Centos):
# vim /etc/sysconfig/docker 打开配置文件追加以下内容
OPTIONS=--insecure-registry 私有仓库地址:5000"
重启docker
systemctl restart docker
拉取本地库
docker pull registry
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
-d 后台守护执行
-p 监听端口号
-v 镜像存放目录
测试私有仓库能否上传与下载
先从官方下载一个镜像
# docker pull busybox
再使用tag更改标签
# docker tag docker.io/busybox 192.1.1.5:5000/busybox
上传镜像到私有仓库
# docker push 192.1.1.5:5000/busybox
在另外一台机器上下载私有仓库镜像
# docker pull 192.1.1.5:5000/busybox
以上是关于Docker的主要内容,如果未能解决你的问题,请参考以下文章