Docker 环境的各种搭建方法 (系统学习Docker02)

写在前面

工欲善其事必先利其器
看官网:https://docs.docker.com/install/

Dcoker 在MAC Windows10 CentOS VartualBox Vagrant 之间能够擦出什么样的火花呢?

2.1 Docker for Mac :

https://docs.docker.com/docker-for-mac/install/
MAC 安装之后包含:
The Docker Desktop installation includes
Docker Engine,
Docker CLI client,
Docker Compose,
Notary,
Kubernetes,
and Credential Helper.

2.2 Docker for Windows10 :(直接安装并不推荐)

https://docs.docker.com/docker-for-windows/install/

√ 2.3 VartualBox + Vagrant(创建虚拟机) for mac 【mac or windows 都推荐这种模式】

VartualBox ,官网下载安装

Vagrant(创建虚拟机不用自己去找镜像什么的),官网下载安装.
这是下载地址 https://www.vagrantup.com/downloads.html 选择自己对应的版本。
安装成功后:

➜  ~ vagrant --version
Vagrant 2.2.7
➜  ~ 

创建一台centos7的虚拟机

➜  myimages mkdir centos7
➜  myimages cd centos7 
➜  centos7 vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
➜  centos7 ll
total 8
-rw-r--r--  1 liuge36  staff   2.9K Feb 14 18:46 Vagrantfile
➜  centos7 
生成的这个文件描述了我们要去创建一个怎么样的VirtualMachine


➜  centos7 vagrant up          
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7'...
....
==> default: Mounting shared folders...
    default: /vagrant => /Users/liuge36/myimages/centos7
➜  centos7 

生成成功~
vagrant status
运行vagrant ssh 进入

停止下来使用:vagrant halt
vagrant status

删除使用:vagrant destroy 

你要是想找自己想要的OS,可以到 vagrant Cloud 这个网站去找现成,类似于Docker Hub

https://app.vagrantup.com/boxes/search
一个 vagrantfile 可以创建多台主机

我这里贴出我的 Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos7"
  config.vm.hostname = "hadoop001"
  config.vm.network "public_network", :bridge=> 'en0: Wi-Fi (AirPort)'

  config.vm.provider "virtualbox" do |v|
    v.gui = false       
    v.name = "hadoop001"     
    v.cpus = 2            
    v.memory = "2048"    
  end


end

ps:关于上面这个文件有两个点说明一下:
1.要是没有科学上网,直接拉取config.vm.box 中定义的centos7 真的是巨慢。可以先通过其他方式下载到本地,再add到本地,避免远程拉取。


# 01 下载centos7 box:
https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
# 02 add 进去
vagrant box add centos7  centos-7.0-x86_64.box

2.关于Vagrantfile中网络的配置,好像默认是静态地址转换NAT网络模式,这种个人不是很喜欢用,我喜欢桥接模式。所以,上面的file中我新增一张桥接网络网卡。关于网络说明可以参考:http://www.360doc.com/content/18/0627/17/32123204_765866462.shtml

  config.vm.network "public_network", :bridge=> 'en0: Wi-Fi (AirPort)'

再来一个三节点的Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos7"


  config.vm.define "hadoop001" do |hadoop001|
     hadoop001.vm.network "public_network", :bridge=> 'en0: Wi-Fi (AirPort)'
     hadoop001.vm.hostname = "hadoop001"
     hadoop001.vm.provider "virtualbox" do |v|
       v.gui = false
       v.name = "hadoop001"
       v.cpus = 2
       v.memory = "2048"
     end
  end

  config.vm.define "hadoop002" do |hadoop002|
     hadoop002.vm.network "public_network", :bridge=> 'en0: Wi-Fi (AirPort)'
     hadoop002.vm.hostname = "hadoop002"
     hadoop002.vm.provider "virtualbox" do |v|
       v.gui = false
       v.name = "hadoop002"
       v.cpus = 2
       v.memory = "2048"
     end
  end  


  config.vm.define "hadoop003" do |hadoop003|
     hadoop003.vm.network "public_network", :bridge=> 'en0: Wi-Fi (AirPort)'
     hadoop003.vm.hostname = "hadoop003"
     hadoop003.vm.provider "virtualbox" do |v|
       v.gui = false
       v.name = "hadoop003"
       v.cpus = 2
       v.memory = "2048"
     end
  end  

end

2.4 VartualBox + Vagrant(创建虚拟机) for windows

VartualBox ,官网下载安装 对应的windows版本;
Vagrant 对应的windows版本,下载,点击下一步下一步即可。

2.5 Docker for CentOS 【推荐这么玩法】

https://docs.docker.com/install/linux/docker-ce/centos/

使用 vagrant 启动一台CentOS7的机器,
vagrant ssh 进入到机器

  1. 先卸载之前的版本:
    sudo yum remove docker
    docker-client
    docker-client-latest
    docker-common
    docker-latest
    docker-latest-logrotate
    docker-logrotate
    docker-engine

2.安装几个依赖
sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2

  1. 添加镜像源
    sudo yum-config-manager
    –add-repo
    https://download.docker.com/linux/centos/docker-ce.repo

  2. sudo yum install docker-ce

  3. sudo systemctl start docker
    sudo docker version

  4. sudo docker run hello-world

√ √ √ √ √ Vagrantfile 高级玩法:√ √ √ √ √ √ √

标题:构建自动化的初始容器
在文件最后,可以添加一些自动运行的命令:
比如,可以将安装docker的命令封装进去,
到时候,直接 vagrant up ,就可以起来一台带上docekr环境的centos
答案:
config.vm.provision “shell”, inline: <<- SHELL
sudo yum remove docker docker-common docker-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager -y --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl start docker
sudo docker version
sudo echo “恭喜您,安装Docker完成~”
SHELL

2.6 Docker Machine

https://docs.docker.com/v17.09/machine/overview/

docker for mac/windows10 已经自带了docker-machine;
docker for linux 也可以自己安装 docker-machine;

安装参考:https://docs.docker.com/machine/install-machine/

安装好之后:
可以直接使用docker-machine create demo 来创建一台带Docker的小虚拟机 ;

到VirtualBox 中就可以看见创建的虚拟机demo。

docker-machine ls
docker-machine create demo // 在本地创建一个带docker的小虚机
docker-machine ssh demo // 进入这个带docker软件的小虚拟机
docker-machine stop demo // 停止容器
docker-machine rm demo // 删除容器

√ √ √ √ √ √ √ docekr-machine 高级玩法 √ √ √ √ √ √ √

标题:外部对内部小虚机的Docker进行管理

本地有一个docker server ,
使用本地的docker-machine 创建了一个带docker server的小虚机,
关闭本地的docker server,之后
docker version // 无server可连接
docker-machine env demo,得到小虚机的环境变量
eval $(docker-machine env demo) // 执行环境变量
docker version // 这个时候连接的就是小虚机的server

后面的都是在外部 对 内部小虚机的docker 进行管理操作了。

这样其实在本地只是需要安装一个docker cli 即可,

目的:直接在本地运行docekr-machine create 在远程cloud 云主机上
创建一台安装好docker的小虚机,

2.7 如何在阿里云主机上创建一台带docker 软件的小虚机

https://docs.docker.com/machine/get-started-cloud/

2.8 如何在AWS云主机上创建一台带docker 软件的小虚机

2.9 Dcoker playground

docekr 训练场
共享 临时的
登录 https://labs.play-with-docker.com/

登录上去之后:就可以使用到cloud 云主机;

在这里插入图片描述

在这里插入图片描述

有什么问题,欢迎留言讨论~~

更多文章:系统学习Docker 不迷路:https://blog.csdn.net/liuge36/category_7651616.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值