Sudo docker imageshtml
Sudo docker images xxxxmysql
Sudo docker pull ubuntunginx
Sudo docker search mysqlgit
sudo docker rmi xxxxx (force)github
不推薦,建議使用docker build+ docker fileweb
建立static_web目錄sql
建立Dockerfile配置文件:docker
Build:ubuntu
1) git建立dockerfile緩存
輸入文件內容:
# vesion: 0.0.1
FROM ubuntu:14.04
MAINTAINER Jay Zhan "zhanchenjin.2008@163.com"
RUN apt-get install -y nginx
RUN echo 'Hi, I am in you container' > /usr/share/nginx/html/index.html
EXPOSE 8090
2) 獲取github中dockerfile文件的raw連接
https://raw.githubusercontent.com/duruo850/docker/master/test.dockerfile
簡寫
https://rawgit.com/duruo850/docker/master/test.dockerfile
3) 使用該連接build
sudo docker build -t="jay/web_from_git" \
https://rawgit.com/duruo850/docker/master/test.dockerfile
4) 查看鏡像
5) 緩存鏡像
Docker的每一次構建都會緩存一個本地的鏡像,因此從哪一步出錯,就進入前鏡像輸入該命令便可知道什麼問題;
若是構建過程都是同樣的,將採用同一個鏡像
若是不想使用緩存,好比apt-get update命令,將不會刷新apt包緩存,這時候須要不使用緩存
sudo docker build –no-cache -t="jay/web_from_git" .
6) 從鏡像啓動容器
sudo docker run -i -t -p 10080:80 --name static_web2 jay/static_web nginx -g "daemon off;"
使用宿主機的10080端口映射虛擬機的80端口
查看宿主機的10080端口效果:
和咱們nginx的index.html的輸出內容一致
7) 將鏡像推送到docker hub
報錯:unauthorized: access to the requested resource is not authorized
解決:須要使用docker login先登錄
只能上傳到docker hub帳戶對應的倉庫(docker hub 帳戶/xxxxxx),不能夠上傳到root倉庫(xxxxx),
去docker hub帳戶查看倉庫:
源代碼託管於github
Github代碼有變化時,dockerhub自動獲取Dockerfile,自動構建docker容器
Github
Github代碼的根目錄須要提供Dockerfile配置文件
DockerHub
CMD指令指定一個容器啓動時要運行的命令。和RUN命令有些相似,只是RUN命令是構建是要運行的命令。RUN命令能夠覆蓋CMD命令
新建dockerfile:
構建鏡像:
啓動鏡像:
RUN命令覆蓋:
Ls命令覆蓋了/bin/bash命令
ENTRYPOINT和CMD命令惟一區別就是不會被RUN命令覆蓋
RUN的命令行的參數會被當作參數再次傳遞給ENTRYPOINT命令
RUN可使用—entrypoint標誌覆蓋該命令
建立鏡像構建新容器時,在容器內部設置一個工做目錄,ENTRYPOINT和/或者CMD命令都會在此目錄下執行
RUN可使用-W標誌覆蓋該命令
在鏡像構建過程當中設置環境變量
環境變量會持久保存到鏡像構建的任何容器中
RUN可使用-e標誌來傳遞環境變量,這些變量將只會在運行時有效
用來指定該鏡像的運行用戶
RUN可使用-u標誌來覆蓋該變量
若是不指定用戶組,默認用戶組爲root
用來向基於鏡像構建的容器添加捲,數據共享功能
用來將構建環境下的文件和目錄複製到鏡像中,
能夠添加構建環境的任何文件
會將一些歸檔文件(gzip,tar,xz,bzip2)等解開,而後再放到目標目錄
若是目錄位置不存在的話,Docker將會爲咱們建立這個全路徑,
ADD命令使得構建緩存變得無效
與ADD命令相似,不過COPY不會像ADD那樣去提取和解開歸檔文件
只能複製構建目錄下的文件,和Dockerfile處於同一個目錄
若是目錄位置不存在的話,Docker將會爲咱們建立這個全路徑,
爲鏡像添加觸發器,當一個鏡像被當作其餘鏡像的基礎鏡像時,該鏡像的觸發器將會執行
爲了防止遞歸調用,這些命令不能用在ONBUILD中:FROM, ONBUILD, MAINTAINER等