docker 虛擬化技術
docker 是一種虛擬化技術,基于 lxc 技術實現。
docker 容器操作
# docker 創建鏡像 dir Dockerfile所在目錄
docker build -r imageName:tag dir
# 查看鏡像的創建歷史
docker history [imageId|imageName]
# 查看鏡像列表 -q 只查看鏡像id
docker images
# 查看鏡像信息
docker inspect imageId
# 運行nginx,docker 容器內無進程時,容器會停止
docker run -d nginx
# 運行一個 /bin/bash 命令保持容器的運行狀態
docker run -it nginx /bin/bash
# 進入一個容器
docker exec -it containerId /bin/bash
# docker [attach|exec|run]的區別
# attach 是用于附加到正在運行的進程
# exec 在已經運行的容器中新開一個線程運行
# run 運行一個新的容器
docker 的容器操作
# docker 容器的生命周期,其中停止和暫停與運行操作可逆
# 創建-> 運行 -> [停止|kill|暫停]
# 查看容器內的進程
docker top [容器名稱|容器ID]
# 查看容器列表
docker ps [-a 查看全部]
# 容器的啟動、停止、重啟
docker [start|stop|restart] 容器ID
# 查看容器狀態
docker stats 容器ID
# 刪除已經停止的容器
docker rm 容器ID
# 進入到容器 exit退出容器 容器無進程時會停止,ctrl + p +q 則容器正常運行
docker attach 容器ID
# 容器暫停與恢復
docker [pause|unpause] 容器id
# kill當前容器
docker kill 容器ID
Dockfile 基本指令
# docker 指令是大寫 參數以及命令是小寫
# 指定一個基礎鏡像
FROM ubuntu
# 指定一個鏡像源的維護者
MAINTAINER kevin@qikegu.com
# 像鏡像添加目錄、文件
COPY /root/testfile /data/
# 為當前鏡像執行命令
RUN apt-get update
# 或者 RUN ["apt-get","update" ]
RUN apt-get install -y nginx
# 只允許有一個 CMD ,如果有多個最后一個生效,運行容器時默認執行的命令,如果運行鏡像有指定,則覆蓋 cmd 內容
CMD ["echo", "Image created"]
# 工作目錄,可以創建多個
WORKDIR /app/
# 指定環境變量, 可以設置多個
ENV app_version 2.0
# 容器開發的端口
EXPOSE 80 443