Docker之JDK鏡像

1 建立並運行JDK容器

# 下載Java鏡像
docker pull java
 # 查看鏡像
docker images
 # 建立並啓動容器
docker run -d -it --name java java
run 使用鏡像建立一個容器
-d 容器運行於後臺
-i 以交互模式運行容器
-t 爲容器從新分配一個僞輸入終端,一般與-i同時使用
--name 給容器起個名字,方便容器管理
 # 查看運行中的容器
docker ps
 # 查看容器(包括不運行的容器)
docker ps -a
 # 啓動一個容器
docker start java
 # 登陸容器,使用attach
docker attach java
 # 登陸容器,使用exec
docker exec -it java /bin/bash
 # 中止容器
docker stop java
複製代碼

2 登陸容器的三種方式

2.1 ssh方式

  • 登陸容器,使用ssh
  • 不推薦這樣作,容器需啓動sshd,存在開銷和攻擊面增大的問題違反Dockers倡導的一個容器一個進程的原則

2.2 attach命令

docker attach java  java

2.3 exec命令

docker exec -it java /bin/bash  docker

2.4 attach與exec的區別

  • attach阻塞式的,若是多個終端同時attach到同一個容器時,全部容器都會同步的顯示,若是一個窗口發生阻塞其它窗口也會阻塞
  • 經過attach登陸容器後若是從空上容器中exit(Ctrl + D)退出的話,這個容器也會中止,使用Ctrl + P + Q方式退出不會致使容器中止運行了

3 JDK鏡像的做用

做爲基礎鏡像或運行時環境 shell

3.1 做爲基礎鏡像

Main.javabash

public class Main {
  public static void main(String[] args) {
    System.out.println("Hello Main!");
  }
}
複製代碼

編寫dockerfile(文件名爲dockerfile):app

FROM java:7
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
複製代碼
  • 此鏡像會編譯當前目錄下的Main.java

構建鏡像ssh

docker build -t my-java-app .
複製代碼

運行容器ide

docker run -it --rm --name my-running-app my-java-app
--rm Automatically remove the container when it exits
複製代碼

3.2 做爲運行時環境

docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp java:7 javac Main.java
-w, --workdir string                 Working directory inside the container
複製代碼

上述操做會把當前目錄做爲卷添加到容器中,並把卷設置爲工做目錄,而後運行命令javac Main.java,這會告訴Java編譯Main.java,並將Java類文件輸出到Main.class。ui

相關文章
相關標籤/搜索