容器技术很棒,它将会改变我们开发好传递软件的方式。当然也有一个批评此技术的人认为它并不安全和足够安全的在产品环境运行。 什么 Red Hat CDK?CDK 是 Container Development Kit(容器开发包)的缩写,它能让开发者在他们的桌面系统上使用 Red Hat Atomic,不管他们所使用的是 Microsoft Windows®,Mac OS X® 或者其他 Linux 的发行版。同boot2docker类似,CDK利用虚拟机来启动一个小的主机,它能运行基于 Red Hat Enterprise Linux 的容器。 前置条件
从 Red Hat 消费者门户 下载下面这些东西。
|
安装 Red Hat 容器开发包
|
1
|
$ unzip -d $HOME ~ /Downloads/cdk-1 .0-0.zip |
安装使用 Red Hat Vagrant 所需要的 Vagrant 插件. 第一个插件会花几分钟时间,Vagrant 可能会需要安装一些额外的gem文件。
1
2
3
|
$ cd ~ /cdk/plugins $ vagrant plugin install vagrant-registration-0.0.8.gem $ vagrant plugin install vagrant-atomic-0.0.3.gem |
验证插件是否已经安装好了:
1
2
3
4
5
|
$ vagrant plugin list vagrant-atomic (0.0.3) - Version Constraint: 0.0.3 vagrant-registration (0.0.8) - Version Constraint: 0.0.8 |
将 RHEL Atomic 盒子添加到 Vagrant:
1
|
$ vagrant box add --name rhel-atomic-7 ~ /Downloads/rhel-atomic-virtualbox-7 .1-0.x86_64.box |
启动 Atomic 主机
|
1
|
$ mkdir ~ /containers && cd ~ /containers |
为容器创建一个工作目录,并初始化 vagrant
1
2
3
4
5
6
|
$ mkdir containers && cd containers $ vagrant init -m 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. |
这一步会创建一个简单的 Vagrant 文件。打开它并像下面这样修改配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Vagrant.configure(2) do |config| config.vm.box = "rhel-atomic-7" config.vm. hostname = "rhel-atomic-7-docker-host" config.vm.provider "virtualbox" do |vb| vb.customize [ "modifyvm" , : id , "--cpuexecutioncap" , "50" ] vb.memory = 4096 end config.vm.provision "shell" , inline: <<-SHELL sudo systemctl stop docker > /dev/null 2>&1 sudo groupadd docker > /dev/null 2>&1 sudo usermod -a -G docker vagrant sudo systemctl enable docker && sudo systemctl start docker sudo chown root:docker /var/run/docker .sock sudo systemctl enable docker && sudo systemctl start docker SHELL end |
我们现在已经做好了启动容器的准备。在机器的创建过程中,你将会看到是否想要注册系统的提示。回答 "Y" 就会要你输入RHN (Red Hat Network) 账户的用户名和密码.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'rhel-atomic-7' ... ==> default: Matching MAC address for NAT networking... ==> default: Setting the name of the VM: containers_default_1432213616739_95846 ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 => 2222 (adapter 1) ==> default: Running 'pre-boot' VM customizations... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Connection timeout. Retrying... default: default: Vagrant insecure key detected. Vagrant will automatically replace default: this with a newly generated keypair for better security. default: default: Inserting generated public key within guest... default: Removing insecure key from the guest if its present... default: Key inserted! Disconnecting and reconnecting using new SSH key... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... default: No guest additions were detected on the base box for this VM! Guest default: additions are required for forwarded ports, shared folders, host only default: networking, and more . If SSH fails on this machine, please install default: the guest additions and repackage the box to continue . default: default: This is not an error message; everything may continue to work properly, default: in which case you may ignore this message. ==> default: Setting hostname ... ==> default: Registering box with vagrant-registration... default: Would you like to register the system now (default: yes )? [y|n] y default: Subscriber username: <your-rhn-username> default: Subscriber password: <password>==> default: Rsyncing folder: /Users/tqvarnst/containers/ => /home/vagrant/sync ==> default: Running provisioner: shell... default: Running: inline script |
测试你的安装
|
1
2
3
4
5
6
7
8
9
10
11
|
$ vagrant ssh [vagrant@rhel-atomic-7-docker-host ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [vagrant@rhel-atomic-7-docker-host ~]$ docker run -it rhel7.1 bash Unable to find image 'rhel7.1:latest' locally Pulling repository registry.access.redhat.com /rhel7 .1 10acc31def5d: Download complete Status: Downloaded newer image for registry.access.redhat.com /rhel7 .1:latest [root@ead3774c2b84 /] # cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.1 (Maipo) [root@ead3774c2b84 /] # |
按下 CTRL-P + CTRL-Q 可以离开你的容器
1
2
3
|
[vagrant@rhel-atomic-7-docker-host ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ead3774c2b84 registry.access.redhat.com /rhel7 .1:7.1-4 "bash" About a minute ago Up About a minute focused_rosalind |
如下命令可以停掉或者删除容器
1
2
3
4
|
[vagrant@rhel-atomic-7-docker-host ~]$ docker stop $(docker ps -q) ead3774c2b84 [vagrant@rhel-atomic-7-docker-host ~]$ docker rm $(docker ps -aq) ead3774c2b84 |
总结
通过这个指南,你就可以有一个可以来使用基于 Red Hat Enterprise Linux 7.1 的容器的工作环境,不管你使用的是 Mac OS X®,Microsoft Windows® 还是其它的Linux发行版。
鸣谢
特别要感谢 Pete Muir 在Vagrant设置上给我带来的支持和帮助。
本文转自:开源中国社区 [http://www.oschina.net]
本文标题:在 OS X 上安装红帽容器开发工具包
本文地址:http://www.oschina.net/translate/install-rh-cdk
参与翻译:leoxu
英文原文:Installing Red Hat Container Development Kit on Mac OS X