zoukankan      html  css  js  c++  java
  • 安装Docker

                                                                          部署DOCKER

    *******************************************************************

    docker  安装环境准备

    物理机:

        添加一个网桥  vbr1

    配置两个虚拟机

        第一个 安装nove节点最少  6G 内存

                   单独添加一块硬盘给 openstack cinder 使用 20G

                   单独添加一块 网卡 使用 vbr1

        第二个 安装 nova 节点 最少 6G 内存

                   单独添加一块 网卡 使用 vbr1

    **********************************************************************8

    1. 安装软件包

    [root@redhat docker 1]# scp docker-*  /var/ftp/public/

    [root@redhat public]# createrepo .

    2. node11,node12配置yum

    [root@node1 ~]# vim /etc/yum.repos.d/dvd.repo 

    [node2]

    name=node

    baseurl=ftp://192.168.1.254/rhel6

    enabled=1

    gpgcheck=0

    [node3]

    name=node

    baseurl=ftp://192.168.1.254/public

    enabled=1

    gpgcheck=0

    3.检测

    [root@node11 yum.repos.d]# yum repolist

    4.安装docker

    [root@node1]# yum -y install docker-engine

    [root@node1]# systemctl start docker

    [root@node1]# systemctl enable  docker

    [root@node1]# docker images       //查看镜像

    5. Docker hub镜像仓库

    https://hub.docker.com

    Docker官方提供公共镜像的仓库(Registry)

    [root@node1]# docker search rhel7  //搜索镜像

    [root@node1]# docker search centos

    [root@node1]# docker search nginx

    [root@node1]# docker search mysql

    镜像操作

    1 下载、上传镜像

    • 下载镜像(从镜像仓库中下载镜像)

    [root@server0 ~]# docker help pull

    docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    [root@server0 ~]# docker pull rhel7

    • 上传镜像(上传镜像到仓库)

    [root@server0 ~]# docdocker help push

    Usage: docker push [OPTIONS] NAME[:TAG]

    [root@server0 ~]# docker push rhel7

    2 导入、导出镜像

    • 导入镜像(通过tar包文件导入镜像)

    [root@server0 ~]# docker load < xx.tar

    [root@server0 ~]# docker images

    • 导出镜像(将本地镜像导出为tar文件)

    [root@server0 ~]# docker images

    [root@server0 ~]# docker save image_name > xx.tar

    3 启动镜像

    • 启动centos镜像生成一个容器

    [root@server0 ~]# docker images

    [root@server0 ~]# docker run -it centos bash

    • 开启另一个终端(查看容器信息)

    [root@server0 ~]# docker ps

    操作使用

    1.导入镜像,导出镜像

    [root@node1~]#yum -y install vsftpd

    [root@node1~]#ftp 192.168.1.254

    帐号:ftp

    密码:123456

    ftp> cd public

    ftp> get docker_images.zip

    ftp> exit

    [root@node1~]#yum -y install unzip

    [root@node1~]#unzip docker_images.zip

    [root@node1~]#docker pull busybox

    [root@node1~]#docker images

    [root@node1~]#docker save busybox:latest >busybox.tar  //导出镜像

    [root@node1~]#scp busybox.tar  node12:./

    [root@node1~]#cd docker_images

    [root@node1~]#for i in  *;do docker load <${i};done     //导入镜像

    [root@node1~]#docker images

    2 启动镜像

    • 启动centos镜像生成一个容器                       /user/bin

    [root@server0 ~]# docker images

    [root@server0 ~]# docker run  -it  centos  bash   //交互式

    [root@server0 ~]# docker run  -d  centos  bash   //非交互式

    [root@server0 ~]# docker run  -itd centos  bash   //交互非交互式

    • 开启另一个终端(查看容器信息)

    [root@server0 ~]# docker ps -a

    3.删除容器

    [root@node1 ~]# docker rm  $(docker ps -aq)

    4.循环使用容器

    [root@node11 ~]# docker start 34af5ae3dfa

    [root@node11 ~]# docker stop 34af5ae3dfa

    命令列表

    • 命令列表

    docker images //查看镜像列表

    docker history //查看镜像制作历叱

    docker inspect //查看镜像底层信息

    docker pull //下载镜像

    docker push //上传镜像

    docker rmi //删除本地镜像

    docker save //镜像另存为tar

    docker load //使用tar包导入镜像

    docker search //搜索镜像

    docker tag //修改镜像名称和标签

    docker run //运行容器

    docker ps //查看容器列表

    docker stop //关闭容器

    docker start //启动容器

    docker restart //重启容器

    docker attach|exec //进入容器

    docker inspect //查看容器底层信息

    docker top //查看容器进程列表

    docker rm //删除容器

    进入容器

    [root@node11 ~]#docker  attach   34af5ae3dfa

    Ctrl(一直按着) + p + q  //放入后台,用在查看报错信息

    [root@node11 ~]# docker start 34af5ae3dfa

    [root@node11 ~]# docker stop 34af5ae3dfa

    [root@node11 ~]#docker  exec -it  34af5ae3dfa  /bin/bash

    [root@server0 ~]# docker run  -itd centos  bash   //交互非交互式


    案例1:

    docker  rm  容器id  删除容器

    docker  run  -d  -p  物理机端口:容器端口  镜像:标签

    1问题:

    启动一个nginx容器,可以通过外部进行反访问

    修改默认主页 hello nsd1802

    2步骤

    [root@node11 ~]# docker run -d -p 80:80 ngin

    [root@node11 ~]# docker ps

    [root@node11 ~]# docker  exec -it  004368d3e1c9  /bin/bash

    root@56ca19ce8cca:/# nginx -h

    root@56ca19ce8cca:/# nginx -T

    root@56ca19ce8cca:/# cd /usr/share/nginx/html

    root@56ca19ce8cca:/# echo "hillo nsd1802"  > index.html 


    案例2:

    docker  commit  配置好的容器ID   自已要定义的容器名字:latest

    1问题:

    定义一个自已的容器镜像

    2 步骤

    1) 安装容器

    [root@node11 ~]# docker run  -itd centos  bash

    [root@node11 ~]# docker ps -aq

    2)配置容器

    [root@node11 ~]# docker  exec -it 0a0c28db82d2  bash

    root@56ca19ce8cca:/# cd /etc/yum.repos.d/

    root@56ca19ce8cca:/# rm -rf *

    root@56ca19ce8cca:/# vim dvd.repo

    root@56ca19ce8cca:/# yum repolist

    root@56ca19ce8cca:/# yum provides ifcomfig

    yum -y install vim-enhanced-7.4.160-2.el7.x86_64

    yum -y install bash-completion.noarch

    yum install net-tools.x86_64

    3)定义容器

    [root@node11 ~]# docker commit 0a0c28db82d2  myos:latest

    4)删掉之前的容器

    [root@node11 ~]# docker stop $(docker ps -aq)

    [root@node11 ~]# docker rm  $(docker ps -aq)

    5)启动自已的容器

    [root@node11 ~]# docker run -it myos


     案例3

    1 问题

    docker自动化配置容器镜像环境

    2 步骤

    [root@node11 xxoo]# docker  ps -a

    [root@node11 xxoo]# mkdir xxoo

    [root@node11 xxoo]# cd xxoo

    [root@node11 xxoo]# touch Dockerfile

    [root@node11 xxoo]# scp /etc/yum.repos.d/dvd.repo ./

    [root@node11 xxoo]# vim Dockerfile

    FROM centos:latest

    RUN  rm -f /etc/yum.repos.d/*

    ADD  dvd.repo /etc/yum.repos.d/xxoo.repo

    RUN  yum repolist

    RUN  yum -y install vim-enhanced psmisc net-tools iproute

    [root@node11 xxoo]# docker build -t test:latest .

    [root@node11 nnoo]# docker run -it  test  bash


    案例4

    1 问题

    修改默认启动文件/bin/bash --->改为/user/bin/ptthon

    2 步骤

    [root@node11 nnoo]# mkdir nnoo

    [root@node11 nnoo]# cd nnoo/

    [root@node11 nnoo]# touch Dockerfile

    [root@node11 nnoo]# vim Dockerfile

    FROM myos:latest

    CMD  ["/usr/bin/python"]

    [root@node11 nnoo]# docker build -t myos:python .

    [root@node11 nnoo]# docker run -it myos:python 


    案例5

    1 问题

    安装apache软件,修改启动文件/bin/bash -->/usr/sbin/httpd

    2 步骤

    [root@node11 nnoo]# mkdir nnoo

    [root@node11 nnoo]# cd nnoo/

    [root@node11 nnoo]# vim Dockerfile

    FROM  test

    RUN yum install -y httpd

    ENV EnvironmentFile=/etc/sysconfig/httpd

    WORKDIR /var/www/html

    RUN echo "helolo nsd1802" > index.html

    EXPOSE 80

    CMD ["/usr/sbin/httpd", "-DFOREGROUND"]

    [root@node11 nnoo]# docker build -t http:httpd .

    [root@node11 nnoo]# docker run -d -p 80:80 http:httpd

    创建私有仓库

    1.配置Node11

    [root@node11 ~]# vim /etc/docker/daemon.json

    {

    "insecure-registries":["192.168.1.20:5000"]

    }

    [root@node11 ~]# systemctl restart  docker

    [root@node11 ~]# docker run -d -p 5000:5000 registry

    [root@node11 ~]# docker tag busybox:latest

     192.168.1.20:5000/busybox:latest

    [root@node11 ~]# docker push  192.168.1.20:5000/busybox:latest

    2.配置node12

    scp  /etc/docker/daemon.json   192.168.1.21:/etc/docker/

    [root@node12 ~]# systemctl  stop docker.service

    [root@node12 ~]# systemctl  restart docker.service

    [root@node12 ~]# docker run -it  192.168.1.20:5000/busybox:latest

    3.查看镜像

    [root@node11 ~]# curl http://192.168.1.20:5000/v2/_catalog

    {"repositories":["busybox"]}

    [root@node11 ~]# curl http://192.168.1.20:5000/v2/busybox/tags/list

    {"name":"busybox","tags":["latest"]}

     

    存储卷的概念

    docker容器不保持任何数据

    • 重要数据请使用外部卷存储(数据持久化)

    • 容器可以挂载真实机目录或共享存储为卷

    1.主机卷的映射

    • 将真实机目录挂载到容器中提供持久化存储

    [root@jacob ~]# docker run -v /data:/data -it centos bash

    共享存储基本概念

    • 一台共享存储服务器可以提供给所有Docker主机使用

    • 共享存储服务器(NASSANDAS)

    • 如:

    – 使用NFS创建共享存储服务器

    – 客户端挂载NFS共享,并最终映射到容器中

    使用共享存储的案例                          

    • 服务器

    yum -y install nfs-utils

    vim /etc/exports

    systemctl start nfs

    Docker主机

    mount挂载共享

    – 运行容器时,使用-v选项映射磁盘到容器中

    1.步骤

    [root@node11 ~]#  mkdir -pv  /nfsroot/nfsro

    [root@node11 ~]# yum -y install nfs-utils

    [root@node11 ~]# vim /etc/exports

    /nfsroot/nfsro  *(ro) 

    [root@node11 ~]# systemctl start nfs

    [root@node11 ~]# docker run -v /nfsroot/nfsro:/nfsroot/nfsro -it centos bash

    [root@node11 ~]# showmount -e 192.168.1.20

    2.测试

    在容器里查看文件夹文件。并进行使用

  • 相关阅读:
    ReactiveX-简介
    docker简记
    ethereum-在Ubuntu上搭建私有链
    netflix-ribbon简介
    netflix-hystrix-简例
    netflix-hystrix-原理[译]
    netflix-hystrix-简介[译]
    JS简记-委托
    JS简记-对象关联
    JS简记-原型二
  • 原文地址:https://www.cnblogs.com/qingbai/p/11956686.html
Copyright © 2011-2022 走看看