Ads 468x60px

##EasyReadMore##

18 5月, 2018

Dockerfile 使用

新增資料夾並在裡面建立 Dockerfile 檔案,內容如下
 
  WORKDIR: 指定docker執行起來時候的預設目錄位置
ENTRYPOINT: 指令Instance啟動後,程式的進入點
 
 
  指令 · 《Docker —— 從入門到實踐­》正體中文版 - https://goo.gl/CVsCL1
 FROM ubuntu:16.04
 # FROM: 指定base image
 
 RUN apt-get update && apt-get install -y openssh-server
 # RUN: 指定build過程中所要執行的指令與安裝動作
 RUN mkdir /var/run/sshd
 RUN echo 'root:screencast' | chpasswd
 RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/ sshd_config
 
 # 設定時區
 # 通常我們安裝Ubuntu在VM或主機上時,安裝過程會設定時區等設定,前面內容有提到基底映像檔包含了最小 化的作業系統,預設不會設定目前的時區,因為時區會因使用者而異,故若有需要的話,則需手動設定。(P. S. 在後面的Rails應用程式需有設定時區才能運行,不然會噴錯。
 ENV TZ 'Asia/Taipei'
 
 RUN apt install tzdata -y
 # $TZ是在前面內容設定的環境變數
 RUN echo $TZ > /etc/timezone && \
     rm /etc/localtime && \
     ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
     dpkg-reconfigure -f noninteractive tzdata
 
 # SSH login fix. Otherwise user is kicked off after login
 RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid. so@g' -i /etc/pam.d/sshd
 
 ENV NOTVISIBLE "in users profile"
 # ENV: 指令啟動後的環境變數
 RUN echo "export VISIBLE=now" >> /etc/profile
 
 EXPOSE 22
 # EXPOSE: 指定所有發布的port
 CMD ["/usr/sbin/sshd", "-D"]
 # CMD: 指定Instance啟動後所要執行的指令

 
  docker build -t eg_sshd:1.0 .
  # “.”為當下路徑
 
  Run a test_sshd container:
  $ docker run -d -P --name test_sshd eg_sshd
  $ docker port test_sshd 22
 
  $ ssh root@192.168.1.2 -p 49154
  # The password is ``screencast``.
  Dockerize an SSH service | Docker Documentation - https://goo.gl/CtfvJb
 
  docker run -v $(pwd):/workspace --restart=always -itdP --name homelake sshd /bin/ bash
  docker run -v $(pwd):/workspace --restart=always -dP --name homelake sshd
  備份、恢復、遷移資料卷 · 《Docker —— 從入門到實踐­》正體中文版 - https://goo.gl/VNH4Jh
  Docker volume 簡單用法 | 只放拖鞋的鞋櫃 - https://goo.gl/WZ1VAX
 
  Push到Docker Hub
  最後透過docker push,即可將該image push到docker hub,供大家使用!
docker push your-name/image-name
  使用Dockerfile建置 · Docker學習筆記 - https://goo.gl/GexLK3
 
 
  git config user.name
  git config user.email
 
 
  -m,--memory    内存限制,格式是數字加單位,單位可以為 b,k,m,g。最小為 4M
  --memory-swap    内存+交換分區大小總限制。格式同上。必須必-m設置的大
--memory-reservation    内存的軟性限制。格式同上
--oom-kill-disable    是否阻止 OOM killer 殺死容器,默認沒設置
--oom-score-adj    容器被 OOM killer 殺死的優先級,范圍是[-1000, 1000],默認為 0
  --memory-swappiness    用于設置容器的虛拟内存控制行為。值為 0~100 之間的整數
--kernel-memory    核心内存限制。格式同上,最小為 4M
啟動指令:
  docker run -v $(pwd):/workspace --restart=always -m 4G --memory-swap="8g" -d -- name homelake0510 -p 22222:22 -t -i sshd /bin/bash
  # docker run -v $(pwd):/workspace --restart=always -m 4G --memory-swap="8g" -- memory-swappiness=1 -d --name homelake0315 -p 22222:22 -t -i sshd /bin/bash

Enjoy Your Coding - 使用 Docker 建立跨平台上開發環境 - https://goo.gl/V6QPVZ

0 意見:

張貼留言

 
Blogger Templates