本文主要介紹了docker的一些常用命令以及Dockerfile的組成元素
鏡像
拉取鏡像
docker pull
查看鏡像
docker images
刪除鏡像
docker rmi
常用參數:
1. -f:強制刪除運行中的容器
創建鏡像
- docker commit
常用參數:
1. -m:本次提交信息
2. --author="" :作者
2.docker build 使用此從Dockerfile文件來構建鏡像
常用參數:
1. -t x/y:z:指定鏡像的命名空間爲x倉庫爲y,tag爲z
容器
創建/啓動容器
- docker create
docker create命令創建的容器並不會立即進入運行狀態,需要使用docker start命令來啓動 - docker retart 重啓容器
- docker run
常用參數:
1. --name:爲容器指定名稱
2. -it:啓動一個交互型容器,此參數爲我們和容器提供了一個交互shell
3. -d:創建後臺型容器
4. -restart=always:容器退出後自動重啓
5. -restart=on-failure:x:容器退出時如果返回值是非0,就會嘗試重啓x次
6. -p x:y :主機端口:容器端口
7. -P:隨機分配一個49000到49900的端口
8.-v:創建數據卷
7. -n :指定dns
8. -h : 指定容器的hostname
9. -e :設置環境變量
10. -m :設置容器使用內存最大值
11. --net: 指定容器的網絡連接類型,支持 bridge/host/none/container
12. --link=x: 添加鏈接到另一個容器x
13. --expose=x: 開放端口x
這裏docker create和docker run -it創建的容器都是交互型容器
查看容器
- docker ps 查看正在運行的容器
常用參數:
1. -a:查看所有容器
2. -l:只列出最近創建的
3. -n=x:只列出最後創建的x個
3. -q:只列出容器id
停止容器
- docker stop
- docker kill
刪除容器
docker rm
常用參數:
1. -f:強制刪除運行中的容器
2. docker rm `docker ps -aq`:刪除所有容器
查看容器日誌
docker logs
常用參數:
1. -f:實時查看日誌
2. --tail=x:查看最後x行
3. -t:查看日誌產生的時間
查看容器進程
docker top
查看容器配置信息
docker inspect
常用參數:
1. -f='{{x}}':查看x配置
進入容器
- docker attch 進入交互型容器
常用參數:
1. -f:強制刪除運行中的容器
2. docker rm `docker ps -aq`:刪除所有容器
- docker exec 進入後臺型容器
常用參數:
1. -it 容器id /bin/bash:進入到後臺容器
Dockerfile
如下是一個Dockerfile文件,我們就來通過這個文件來學習一下Dockerf的相關指令
1 2 3 4 5 6 7 8 9 10 11 12 |
FROM openjdk:8-jre-alpine MAINTAINER "syj <[email protected]>" RUN apt-get update EXPOSE 80 ADD test.0.0.1.jar app.jar VOLUME /tmp WORKDIR /tmp ENV username syj CMD java -jar /app.jar ENTRYPOINT java -jar /app.jar USER root ONBUILD:echo "hello child" |
- FROM:文件開頭的指令,指定父級鏡像
- MAINTAINER: 作者信息,syj是用戶名,後面是郵箱
- RUN: 用來執行命令,可以有一下三種形式
- RUN apt-get update
- RUN [ “apt-get”," update" ]
- RUN apt-get update && apt-get nginx
- EXPOSE: 指定容器對外開放的端口
- ADD :將主機上的文件(Dockerfile的相對路徑)或者網絡文件添加到鏡像中
- VOLUME :指定掛載點
- WORKDIR:下方指令執行的目錄
- ENV:設置環境變量
- CMD:啓動容器時默認運行的命令,同RUN的執行方式
- CMD java -jar /app.jar
- CMD [“java”,"-jar","/app.jar"]
- ENTRYPOINT :同CMD
- USER :執行指令的用戶
- ONBUILD:觸發器指令,此鏡像當做父鏡像時執行的命令,可以跟ADD、RUN、ENTRYPOINT
本文出自http://zhixiang.org.cn/,轉載請保留