如何在CentOS或Fedora上運行Docker容器?
譯文最近,炙手可熱Docker已儼然成為將應用程序部署到云環境的一種關鍵技術。相比傳統的硬件虛擬化技術,基于 Docker的容器沙箱為應用程序部署環境提供了許多優點,比如輕型隔離、部署的應用程序便于移植、易于維護等。現在,紅帽公司正在引領開源社區,竭力簡化管理和部署Docker容器的任務。
Docker不僅僅適用于云環境,它對最終用戶來說也相當有用,如果你想在特定的Linux環境下測試某一款軟件,更是如此。你可以為目標環境輕松構建Docker容器,在里面安裝和測試軟件,然后一旦完成工作,就可以扔掉這個容器。從頭到尾的整個過程相當高效而便捷,可以始終避免把你的終端系統弄得亂七八糟。
在本教程中,我將介紹如何在CentOS或Fedora上創建和管理Docker容器。請注意:眼下Docker只在64位主機系統上得到支持。如果你想在Ubuntu上試一試Docker,請參閱這篇教程:http://xmodulo.com/manage-linux-containers-docker-ubuntu.html。
將Docker安裝到CentOS或Fedora上
要將Docker安裝到CentOS上,首先啟用EPEL軟件庫,然后使用yum命令:
- $ sudo yum install docker-io
- $ sudo service docker start
- $ sudo chkconfig docker on
要將Docker安裝到Fedora上,使用下面這些命令:
- $ sudo yum install docker-io
- $ sudo systemctl start docker.service
- $ sudo systemctl enable docker.service
將Docker安裝到CentOS或Fedora上后,你需要將自己添加到docker群組,那樣才能以非root用戶的身份來運行Docker。為此,使用這個命令:
- $ sudo usermod -a -G docker $USER
退出,重新登錄,以激活群組變更。
至此,你應該能夠以非特權用戶的身份來運行docker命令了。
Docker的基本用法
你想啟動一個新的Docker容器,就需要確定為容器使用哪個Docker映像。你可以搜索官方的Docker映像索引(https://index.docker.io),上面列出了公開可用的Docker映像。Docker索引包括:Docker團隊管理的Linux基本映像(比如Ubuntu、Debian、Fedora和 CentOS),以及用戶貢獻的自定義映像(比如MySQL、Redis和WordPress)。
比如說,想在交互模式開啟動一個Ubuntu容器,就要運行下面這個命令。容器一啟動,最后的變量“/bin/bash”就在容器里面執行。
- $ docker run -i -t ubuntu /bin/bash
你頭一次運行上面這個命令時,它會通過網絡下載可用的一個或多個Ubuntu docker映像,然后使用該映像,啟動Docker容器。Ubuntu容器會立馬啟動,你會看到容器里面的控制臺提示符。你可以訪問容器沙箱里面的功能完備的Ubuntu操作系統。
如果你在提示符處鍵入“exit”,就會退出容器,容器會被停止。
想列出所有的容器(包括已停止的容器),運行這個命令:
- $ docker ps -a
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 6a08a0b2bb4c ubuntu:14.04 /bin/bash About a minute ago Exit 0 cocky_ritchie
想在守護進程模式下重新啟動某個已停止的容器:
- $ docker start [container-id]
想移除某個已停止的容器:
- $ docker rm [container-id]
想連接到后臺運行的容器,以便查看容器或與之交互:
- $ docker attach [container-id]
你可以隨意定制某個運行中的容器(比如安裝新軟件)。如果你想把變更內容保存在當前容器中,先要在提示符處鍵入“exit”,退出容器的交互模式。然后使用這個命令,將已變更的映像保存為不同的映像:
- $ docker commit [container-id] [new-image-name]
想獲得你容器的容器ID,可以使用之前描述的“docker ps –a”命令。
一旦你已構建了像這樣的新映像,就可以借助該映像啟動一個新的容器了。
你還可以下載任何公開的容器映像(比如ubuntu,bowery/mysql),將它們保存到本地軟件庫中,如下所示。
- $ docker pull [image name]
想查看所有本地下載/保存的容器映像:
- $ docker images
你可以選擇從哪個特定的映像來啟動容器:
- $ docker run -i -t [image-id] /bin/bash
想從本地軟件庫移除某個容器映像:
- $ docker rmi [image-id]