Docker是一個開源的容器虛擬化平台 , Docker Compose是一個用來定義和運行復雜應用的Docker工具。使用Compose,你可以在一個文件中定義一個多容器應用,然后使用一條命令來啟動你的應用,完成一切准備工作。;
- CentOS 7.0下Docker的安裝
1.查看內核版本(Docker需要64位版本,同時內核版本在3.10以上,如果版本低於3.10,需要升級內核):
1 |
uname -r |
2.更新yum包:
1 |
yum update |
3.添加yum倉庫:
1 |
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' |
4.安裝Docker
1 |
yum install docker-engine |
5.啟動Docker
1 |
systemctl start docker.service 或者 service docker start |
6.使用Docker國內鏡像(為Docker鏡像下載提速,非必須)
1 |
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://fe8a7d6e.m.daocloud.io |
- docker-compose 簡介
一個使用Docker容器的應用,通常由多個容器組成。使用Docker Compose,不再需要使用shell腳本來啟動容器。在配置文件中,所有的容器通過services
來定義,然后使用 docker-compose
腳本來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器。完整的命令列表如下:
build
構建或重建服務help
命令幫助kill
殺掉容器logs
顯示容器的輸出內容port
打印綁定的開放端口ps
顯示容器pull
拉取服務鏡像restart
重啟服務rm
刪除停止的容器run
運行一個一次性命令scale
設置服務的容器數目start
開啟服務stop
停止服務up
創建並啟動容器
參考 https://docs.docker.com/compose/install/ 。你能運行Compose在OSX和64位Linux。當前不支持Windows操作系統。
- 安裝Docker Compose
curl方式
1 |
curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s `-`uname -m` > /usr/local/bin/docker-compose |
python-pip 方式
1 |
yum -y install -y epel-release #安裝pip需要先安裝epel-release包 |
如果docker-compose報錯
1 |
Traceback (most recent call last): |
輸入:
1 |
pip install --upgrade backports.ssl_match_hostname |
配置文件
Compose的配置文件是docker-compose.yml。讓我們看看下面這個文件:
1 |
mysqldb: |
a. 定義了兩個服務分別叫做mysqldb
和mywildfy
b. 使用image
定義每個服務的鏡像名
c. MySQL容器的環境變量定義在environment
d. MySQL容器使用links
和WildFly
容器鏈接
e. 使用ports
實現端口轉發
啟動服務
1.如果你從互聯網運行,將docker-compose-internet.yml
保存為docker-compose.yml
。
2.如果你使用教師給的鏡像,將docker-compose-instructor.yml
保存為docker-compose.yml
。
3.使用下面的命令,所有的服務將使用后台模式被啟動
1 |
docker-compose up -d |
顯示的輸出如下:Creating attendees_mysqldb_1... Creating attendees_mywildfly_1...
使用-f指定代替的compose文件。
使用-p指定代替compose文件所在的目錄。
這里提供了一個整合的列表顯示所有啟動的服務和容器。
同時,通常使用docker ps
命令來驗證應用的容器,和在Docker主機上運行的其他容器。
1 |
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |