13 Docker Compose

1 安裝Compose

從 Github 上下載它的二進(jìn)制包來使用
最新發(fā)行的版本地址:https://github.com/docker/compose/releases

# 下載
[root@localhost compose]# curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   617    0   617    0     0    896      0 --:--:-- --:--:-- --:--:--   896
100 16.2M  100 16.2M    0     0  1735k      0  0:00:09  0:00:09 --:--:-- 2366k

# 可執(zhí)行權(quán)限
[root@localhost compose]# chmod +x /usr/local/bin/docker-compose

# 查看安裝是否成功
[root@localhost compose]# docker-compose -v
docker-compose version 1.25.1, build a82fef07

2 使用

將jar包上傳到該目錄下

[root@localhost compose]# vi Dockerfile
FROM openjdk:8
MAINTAINER gp6 <gp6@test.com>

# VOLUME 指定了臨時(shí)文件目錄為/tmp。
# 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp
VOLUME /tmp

# 將jar包添加到容器中并更名為docker-boot.jar
ADD SpringBoot-1.0-SNAPSHOT.jar docker-boot.jar

# 運(yùn)行jar包
RUN bash -c 'touch /docker-boot.jar'

EXPOSE 8081

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker-boot.jar"]

# 在 jar 包所在路徑創(chuàng)建文件 docker-compose.yml
[root@localhost compose]# vi docker-compose.yml
# 表示該 Docker-Compose 文件使用的是 Version 3 file
version: '3'

services:
  # 指定服務(wù)名稱
  docker-compose-test:

    # 指定 Dockerfile 所在路徑
    build: .  

    # 指定端口映射
    ports:    
      - "9000:8080"


# 啟動(dòng)并運(yùn)行容器  
[root@localhost compose]# docker-compose up -d
Creating network "compose_default" with the default driver
Building docker-demo
Step 1/7 : FROM openjdk:8
 ---> f8146facf376
......
docker-demo_1  | 2020-01-09 02:29:28.430  INFO 1 --- [           main] com.gp6.HelloApplication                 : Started HelloApplication in 6.277 seconds (JVM running for 7.637)

# 查看容器
[root@localhost compose]# docker  ps -a
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS                       PORTS                              NAMES
f091b46f3f85        compose_docker-compose-test   "java -Djava.securit…"   23 seconds ago      Up 21 seconds                8081/tcp, 0.0.0.0:9000->8080/tcp   compose_docker-compose-test_1

# 測(cè)試
[root@localhost compose]# curl 127.0.0.1:9000/hello
hello world!

# 列出所有運(yùn)行容器
[root@localhost compose]# docker-compose ps
            Name                           Command               State                Ports              
---------------------------------------------------------------------------------------------------------
compose_docker-compose-test_1   java -Djava.security.egd=f ...   Up      0.0.0.0:9000->8080/tcp, 8081/tcp

# 查看服務(wù)日志輸出
[root@localhost compose]# docker-compose logs
Attaching to compose_docker-compose-test_1
docker-demo_1  | 
docker-demo_1  |   .   ____          _            __ _ _
docker-demo_1  |  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
docker-demo_1  | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
docker-demo_1  |  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
docker-demo_1  |   '  |____| .__|_| |_|_| |_\__, | / / / /
docker-demo_1  |  =========|_|==============|___/=/_/_/_/
......
docker-demo_1  | 2020-01-09 02:34:09.979  INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 50 ms

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容