Docker 是一個開源工具,它可以讓創建和管理 Linux 容器變得簡單。容器就像是輕量級的虛擬機,並且可以以毫秒級的速度來啟動或停止。Docker 幫助系統管理員和程序員在容器中開發應用程序,並且可以擴展到成千上萬的節點。
容器和 VM(虛擬機)的主要區別是,容器提供了基於進程的隔離,而虛擬機提供了資源的完全隔離。虛擬機可能需要一分鍾來啟動,而容器只需要一秒鍾或更短。容器使用宿主操作系統的內核,而虛擬機使用獨立的內核。
Docker 的局限性之一是,它只能用在 64 位的操作系統上。
在這篇文章中我們將討論如何在 CentOS 7.x 中安裝 docker。
CentOS 7 中 Docker 的安裝
Docker 軟件包已經包括在默認的 CentOS-Extras 軟件源里。因此想要安裝 docker,只需要運行下面的 yum 命令:
- [root@localhost ~]# yum install docker
啟動 Docker 服務
安裝完成后,使用下面的命令來啟動 docker 服務,並將其設置為開機啟動:
- [root@localhost ~]# service docker start
- [root@localhost ~]# chkconfig docker on
(LCTT 譯注:此處采用了舊式的 sysv 語法,如采用CentOS 7中支持的新式 systemd 語法,如下:
- [root@localhost ~]# systemctl start docker.service
- [root@localhost ~]# systemctl enable docker.service
)
下載官方的 CentOS 鏡像到本地 (LCTT 譯注:由於 Docker 被牆 :-< ,所以請使用 http://docker.cn 的鏡像,感謝 @馬全一 的鏡像。 )
- [root@localhost ~]# docker pull centos
- Pulling repository centos
- 192178b11d36: Download complete
- 70441cac1ed5: Download complete
- ae0c2d0bdc10: Download complete
- 511136ea3c5a: Download complete
- 5b12ef8fd570: Download complete
確認 CentOS 鏡像已經被獲取:
- [root@localhost ~]# docker images centos
- REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
- centos centos5 192178b11d36 2 weeks ago 466.9 MB
- centos centos6 70441cac1ed5 2 weeks ago 215.8 MB
- centos centos7 ae0c2d0bdc10 2 weeks ago 224 MB
- centos latest ae0c2d0bdc10 2 weeks ago 224 MB
運行一個 Docker 容器:
- [root@localhost ~]# docker run -i -t centos /bin/bash
- [root@dbf66395436d /]#
我們可以看到,CentOS 容器已經被啟動,並且我們得到了 bash 提示符。在 docker 命令中我們使用了 “-i 捕獲標准輸入輸出”和 “-t 分配一個終端或控制台”選項。若要斷開與容器的連接,輸入 exit。
- [root@cd05639b3f5c /]# cat /etc/redhat-release
- CentOS Linux release 7.0.1406 (Core)
- [root@cd05639b3f5c /]# exit
- exit
- [root@localhost ~]#
我們還可以搜索基於 Fedora 和 Ubuntu 操作系統的容器。
- [root@localhost ~]# docker search ubuntu
- [root@localhost ~]# docker search fedora
顯示當前正在運行容器的列表
via: http://www.linuxtechi.com/install-docker-on-centos-7/
docker 基本操作命令:
yum -y install docker #如果報錯,解決辦法
docker run 鏡像 apt-get install -y wget #在容器中安裝新的程序(wget)
docker images #查看docker庫中是否已經有鏡像
docker search Ubuntu #查看docker鏡像庫里有沒有Ubuntu鏡像
docker pull Ubuntu:14.04 #下載標准的Ubuntu 14.04 鏡像
docker tag 鏡像ID 別名 #給下載的鏡像取個別名
docker images #可以查看是否下載成功
docker ps -a #查看docker環境里有多少容器
docker start 3a09b2588478 #容器 ID 顯示在列表左側。我們可以重新進入容器,不過需要先啟動容器。這里使用容器 3a09b2588478 作為示例,你操作時需要使用自己的容器 ID,啟用容器
docker 容器操作:
docker run -d --name 容器名 鏡像 #創建容器
docker stop 容器 #先停止
docker run centos sleep 20& #默認等待10秒鍾再殺死指定容器。可以使用-t參數來設置等待時間
docker rm 容器 #再移除
刪除容器:docker rm CONTAINERID
查看所有容器ID:docker ps -a -q
刪除所有的容器:docker rm $(docker ps -a -q)
docker exec -i -t 容器名 bash #進入自己的容器
docker exec -it 容器名 bash #進入自己的容器
docker inspect 容器 #查看容器的ip
docker port 容器名 #查端口
redis-cli -h 另一個容器ip #在容器里登陸另一個容器
docker export 容器名或ID > /home/work/ubuntu.tar #導出docker容器sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
cat ubuntu.tar | docker import - 容器名/ubuntu:v1.0 #導入docker容器sudo docker load --input ubuntu_14.04.tar
docker rm $(docker ps -a -q) #刪除所有停止的容器
docker run -d -p本地端口:容器端口 -v /本地絕對路徑:/容器內絕對路徑 --name容器名 鏡像名 #創建容器
docker ps -a -q | xargs docker rm #可以刪除所有未運行的容器,docker ps -a -q列出當前運行的容器, -a 會列出所有,包括已停止的, -q 只列出容器 ID。
docker鏡像操作:
docker search NAME #搜索可用的docker鏡像
docker history 鏡像 #查看鏡像的歷史版本
docker push 鏡像 #使用以下命令將鏡像推送到registry
docker commit 做好容器 新創建的鏡像名 #將容器制作成鏡像
docker run --name 容器名 -d -p 17474:22 -v /data/test本地目錄:/home/test容器目錄 -h test 鏡像 #新建容器全
useradd test -d /home/test #新建用戶登陸到指定目錄
apt-get update && apt-get install -y openssh-server #容器里下載安裝
docker rmi 鏡像名或鏡像ID號 #刪除鏡像,先刪除這個鏡像啟動的容器
一次性刪除所有鏡像: docker rmi $(docker images -q)
doxker save 鏡像名 >/home/work/ubuntu_ssh.tar #將docker鏡像導出
docker load < /home/work/ubuntu_ssh.tar #將本地docker鏡像導入docker環境下
https://docs.docker.com/engine/reference/run/