Docker 体验及总结(1) - 开发环境部署

2018-08-22  本文已影响6人  千反田爱瑠爱好者
https://www.docker.com/

项目部署方式对比

传统部署:

虚拟化部署

容器部署

安装

直接安装(默认Centos环境,否则建议Vargrant + VirtualBox搭建虚拟环境)

yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2 epel-release
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum clean all
yum update
yum makecache
yum install docker-ce       # CentOS 6: yum -y install docker-io

systemctl start docker
docker run hello-world

Docker Machine:创建运行Docker的VM环境

docker-machine version

docker-machine create demo
docker-machine ls

docker-machine ssh demo

通过本地命令管理Docker Machine

docker-machine env demo
    eval $(docker-machine env demo)
docker version

架构

Client - Docker Host - Registry

底层技术支持:

Vagrant + VirtualBox部署虚拟化开发环境

VirtualBox

yum install -y tigervnc* VirtualBox-5.2
service vboxdrv setup

Vagrant

# Vagrant Cloud: https://app.vagrantup.com/boxes/search
wget https://releases.hashicorp.com/vagrant/2.1.2/vagrant_2.1.2_x86_64.rpm
rpm -ivh ...

mkdir Master && cd Master
vagrant init centos/7       # 创建虚拟机(如果没有对应镜像会自动下载)
vagrant up                  # 如要使用VMWare可指定--provider=vmware_fusion
vagrant ssh

其他常用命令:

vagrant init                # 初始化
vagrant up                  # 启动
vagrant halt                # 关闭
vagrant reload              # 重启
vagrant ssh                 # 连接
vagrant status              # 查看运行状态
vagrant destroy             # 销毁

Vagrant &Docker

创建四台CentOS,三台Slave,一台Master

mkdir Master Slave1 Slave2 Slave3
cd Master && vagrant init centos/7 && vagrant up
cd Slave1 && vagrant init centos/7 && vagrant up
cd Slave2 && vagrant init centos/7 && vagrant up
cd Slave3 && vagrant init centos/7 && vagrant up

更推荐通过Vagrantfile创建,自动安装依赖(以Master为例):

vim Vagrantfile
    Vagrant.configure("2") do |config|
      config.vm.box = "centos/7"
      config.vm.network "private_network", ip: "10.0.3.110"
      config.vm.provision "shell", inline: <<-SHELL
        sudo su
        service network restart
        
        yum -y install net-tools vim wget
        
        yum install -y yum-utils \
            device-mapper-persistent-data \
            lvm2
        yum-config-manager \
            --add-repo \
            https://download.docker.com/linux/centos/docker-ce.repo
        yum install -y docker-ce
        systemctl start docker
        
        echo "10.0.3.110 Master" >> /etc/hosts
        echo "10.0.3.111 Slave1" >> /etc/hosts
        echo "10.0.3.112 Slave2" >> /etc/hosts
        
        echo "Master" > /etc/hostname
        hostname Master
        
        wget http://apache.mirrors.pair.com/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz \
            -O /usr/local/src/zookeeper-3.4.13.tar.gz
        tar -zxf /usr/local/src/zookeeper-3.4.13.tar.gz
      SHELL
    end
vagrant reload      # 修改Vagrantfile后需要重新加载
vagrant ssh
    ifconfig
    sudo docker run hello-world

创建好一台虚拟机,把Vagrantfile复制一份、修改ip地址和域名,在指定目录下执行vagrant up即可创建其他相同环境的虚拟机,非常方便。

配置好开发环境、退出并关闭后可以对环境打包:

vagrant package             # 生成一个package.box文件,只要添加这个box 并用其初始化自己的目录就能得到相同的开发环境

一些资料

上一篇 下一篇

猜你喜欢

热点阅读