在 Mac OS X 上安裝紅帽容器開發工具包
容器技術很棒,它將會改變我們開發好傳遞軟體的方式。當然也有一個批評此技術的人認為它並不安全和足夠安全的在產品環境執行。
隨著 Red Hat Enterprise Linux 7.1 和 Red Hat Atomic 的登陸,企業和組織機構可以不用犧牲安全性和效能,也能擁抱這一新技術趨勢。
什麼 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 CDK 你就得擁有一個啟用了的 Red Hat Enterprise Linux 訂閱, 如果沒有,可以在 這裡 進行申請和檢視。
- 虛擬環境 – VirtualBox (Mac/Windows) 或者 virt-manager (Linux)
- Vagrant – 用來建立和管理虛擬環境。
從 Red Hat 消費者門戶 下載下面這些東西。
- Red Hat 容器工具(Container Tools)
- 面向 VirtualBox 的 Red Hat Atomic Vagrant 盒子 或者 面向libvirt 的 Red Hat Atomic Vagrant 盒子。
安裝 Red Hat 容器開發包
注意:在這之前你需要安裝好虛擬化環境以及 Vagrant
解壓你下載的 cdk.zip 檔案到主目錄. 這樣會建立 ~/cdk (/Users/username/cdk)
$ unzip -d $HOME ~/Downloads/cdk-1.0-0.zip
安裝使用 Red Hat Vagrant 所需要的 Vagrant 外掛. 第一個外掛會花幾分鐘時間,Vagrant 可能會需要安裝一些額外的gem檔案。
$ cd ~/cdk/plugins $ vagrant plugin install vagrant-registration-0.0.8.gem $ vagrant plugin install vagrant-atomic-0.0.3.gem
驗證外掛是否已經安裝好了:
$ 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:
$ vagrant box add --name rhel-atomic-7 ~/Downloads/rhel-atomic-virtualbox-7.1-0.x86_64.box
啟動 Atomic 主機
為 docker 檔案建立一個工作目錄
$ mkdir ~/containers && cd ~/containers
為容器建立一個工作目錄,並初始化 vagrant
$ 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 檔案。開啟它並像下面這樣修改配置:
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) 賬戶的使用者名稱和密碼.
$ 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
測試你的安裝
$ 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 可以離開你的容器
[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
如下命令可以停掉或者刪除容器
[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設定上給我帶來的支援和幫助。
相關文章
- 在Mac OS X上安裝Virtual Box 和 VagrantMac
- 在虛擬機器上安裝Mac os x 系統虛擬機Mac
- 在雪豹10.6.6(Mac OS X)上安裝Oracle10gMacOracle
- Mac os x 10.4.8終於在我的pc上安裝成功Mac
- Mac OS X下開發軟體的安裝與配置Mac
- 在mac os上如何安裝android sdkMacAndroid
- 在VirtualBox上安裝OS X 10.10
- [Sqlite] Sqlite在Windows、Linux 和 Mac OS X 上的安裝過程SQLiteWindowsLinuxMac
- Mac OS X 上的PHP開發環境 vimMacPHP開發環境
- Windows下虛擬機器安裝Mac OS X ----- VM12安裝Mac OS X 10.11Windows虛擬機Mac
- Mac OS X中MacPorts安裝和使用Mac
- 如何在PC上安裝Mac OSMac
- Erlang Primer (1) Mac OS X 上配置 Erlang 開發環境Mac開發環境
- PHP7.0.0在OS X編譯安裝PHP編譯
- Mac(OS X)中Git安裝與GitHub基本使用MacGithub
- 在anlions os上安裝資料庫資料庫
- 【轉】mac os x系統上Android開發環境的搭建MacAndroid開發環境
- Mac OS X Lion安裝MacPorts(讓你在Mac的Shell下更加遊刃有餘)Mac
- 在mac上安裝DockerMacDocker
- mac os安裝macvimMac
- Mac OS X 10.6.8下安裝Oracle客戶端MacOracle客戶端
- Mac OS X 上用 otool 代替 lddMac
- 在 Linux 和 Mac OS X 系統上執行 .NETLinuxMac
- Mac OS XMac
- 不借助 Docker Desktop 在Mac上開發容器應用DockerMac
- 在 Mac OSX 上安裝 nginxMacNginx
- [未完待續] 在 Mac OS X 中搭建 Apache + PHP + MySQL 開發環境MacApachePHPMySql開發環境
- Mac OS X下搭建Android開發環境MacAndroid開發環境
- VMware 下安裝 Mac OS 和 Chrome OSMacChrome
- 32位軟體安裝在64位OS上
- 在Mac OS X中配置Apache + PHP + MySQLMacApachePHPMySql
- 在Windows上安裝Elasticsearch 5.xWindowsElasticsearch
- Mac OS X 10.15 編譯安裝 Nginx詳細教程Mac編譯Nginx
- mac os x中安裝mysql+phpmyadmin的方法記錄MacMySqlPHP
- 從Windows的角度看Mac OS X軟體開發WindowsMac
- Mac OS X 下搭建 Java 開發環境圖解MacJava開發環境圖解
- 在Mac OS中搭建superset開發環境Mac開發環境
- OS X編譯安裝Mariadb編譯