Docker

Posted abc小辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker相关的知识,希望对你有一定的参考价值。


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的主要内容,如果未能解决你的问题,请参考以下文章

DockerDocker常用命令

DockerDocker配置

dockerdocker镜像和镜像发布方法

dockerdocker

dockerdocker安装rabbitmq

dockerdocker下安装mysql