Centos7安装docker与docker-compose
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 2 3 4 5 6 7 8 | sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg 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 2 3 4 5 | curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s `-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose -v |
python-pip 方式
| 1 2 3 4 5 6 7 8 9 | yum -y install -y epel-release #安裝pip需要先安裝epel-release包 yum install -y python-pip #安裝pip pip install --upgrade pip #升級pip pip install docker-compose #安裝docker-compose docker-compose -v #查看docker-compose的版本 |
如果docker-compose報錯
| 1 2 3 4 5 6 7 8 | Traceback (most recent call last): File "/usr/bin/docker-compose", line 5, in <module> from pkg_resources import load_entry_point File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3011, in <module> parse_requirements(__requires__), Environment() File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 626, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: backports.ssl-match-hostname>=3.5 |
輸入:
| 1 | pip install --upgrade backports.ssl_match_hostname |
?
配置文件
Compose的配置文件是docker-compose.yml。讓我們看看下面這個文件:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | mysqldb: image: [classroom.example.com:5000/]mysql environment: MYSQL_DATABASE: sample MYSQL_USER: mysql MYSQL_PASSWORD: mysql MYSQL_ROOT_PASSWORD: supersecret mywildfly: image: [classroom.example.com:5000|arungupta]/wildfly-mysql-javaee7 links: - mysqldb:db ports: - 8080 |
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 2 3 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3598e545bd2f arungupta/wildfly-mysql-javaee7:latest "/opt/jboss/wildfly/ 59 seconds ago Up 58 seconds 0.0.0.0:32773->8080/tcp attendees_mywildfly_1 b8cf6a3d518b mysql:latest "/entrypoint.sh mysq 2 minutes ago U |
轉載于:https://www.cnblogs.com/lywJ/p/10716062.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Centos7安装docker与docker-compose的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ 1433 Luogu P20
- 下一篇: How to expand Azure