Docker常用指令

docker 常用指令

從開始使用docker到深入使用docker

1. 查看docker版本
docker version --返回docker版本信息
2. 查看docker的運(yùn)行的詳細(xì)信息
docker info -- docker一些狀態(tài)、模式、端口信息
--container 

--images

--storage driver

--root directory

--execution driver

--debug status

--proxy port

-- 。。。

3. 如何跑docker run command
docker run [-it/p] image //run image as a container
sudo docker run -p 8080:8080 -p 50000:50000 jenkins
-p ip:hostport:containerport 127.0.0.1:80:8080 --

-d 在后臺(tái)運(yùn)行 --

-i 交互模式運(yùn)行 --

--name 指定容器名稱  -

--env-file=[] 從指定文件讀入環(huán)境變量-

-v 

執(zhí)行命令后,會(huì)下載hello-world image

--p參數(shù),指定端口號(hào),容器之間的通信
--如果已經(jīng)存在這個(gè)container
--如果本地沒有,就去倉庫hub里下


4. 從倉庫里拉取image鏡像
docker pull [image]
5. 查看docker 鏡像信息
docker images
tag -
image ID
Created
Virtual Size
6. 移除docker images
docker rmi ImageID
7. 返回imagesID only
docker images -q
8. 查看image或者container的detail
docker inspect Repository(image name)
9. container是image的實(shí)例
10. 查看有哪些containers
docker ps [-a] //返回當(dāng)前運(yùn)行的containers
-a 返回系統(tǒng)上的containers
11. 查看指定鏡像的創(chuàng)建歷史
docker history ImageID
12. 查看Container的top信息
docker top ContainerID
13. 停止運(yùn)行container
docker stop ContainerID
14. 刪除一個(gè)container
docker rm ContainerID
15. docker stats ContainerID
16. docker attach ContainerID
17. 暫停一個(gè)container
docker pause ContainerID
18. docker unpause ContainerID
19. 干掉一個(gè)container
docker kill containerID
20. container的生命周期
created run kill pause stop
21. container的架構(gòu)
22. docker的配置
service docker stop
service docker start
23. containers and shells
docker run -it centos /bin/bash
24. docker File
DockerFile創(chuàng)建
DockerFile中的內(nèi)容和語法 -

文件構(gòu)成

  1. 基礎(chǔ)鏡像信息
  2. 維護(hù)者信息
  3. 鏡像操作指令
  4. 容器啟動(dòng)時(shí)執(zhí)行指令
  5. 為注釋內(nèi)容

1. # - 注釋的用法
2. FROM <image>- 開頭關(guān)鍵字,從這開始,從哪個(gè)iamge中拿東西
3. MAINTAINER - 告訴docker誰將維護(hù)這個(gè)
4. RUN - image運(yùn)行哪些指令,針對(duì)image

4.1 RUN指令創(chuàng)建的中間鏡像會(huì)被緩存,并會(huì)在下次構(gòu)建中使用。

4.2 如果不想使用這些緩存鏡像,可以在構(gòu)建時(shí)指定--no-cache參數(shù),如:docker build --no-cache

6. ADD - 將本地文件添加到容器中,可以訪問網(wǎng)絡(luò)(wget),也會(huì)自動(dòng)解壓文件
7. COPY - 類似ADD,不會(huì)解壓也不能訪問網(wǎng)絡(luò)
8. CMD - 容器啟動(dòng)時(shí),系統(tǒng)運(yùn)行指令
9. EXPOSE - expose port in the container to the Docker host
10. ENTRYPOINT - 配置容器接收參數(shù),使其可執(zhí)行
11. LABEL - 為鏡像添加元數(shù)據(jù)
12. VOLUME - 指定持久化目錄
13. WORKDIR -工作目錄,類似cd命令
14. ONBULILD - 設(shè)置鏡像觸發(fā)器
15. ENV - 設(shè)置環(huán)境變量

博客:https://www.cnblogs.com/panwenbin-logs/p/8007348.html

docker的構(gòu)建
1. docker bulid -t ImageName:TagName dir

dir Docker File的目錄

25. 管理docker端口

hostport containerport

26. 部署web server dockerfile
  1. 創(chuàng)建DockerFile
  2. build

docker build -t="mywebserver"

  1. run

docker run -d -p 80:80 mywebserver

27. 一些常用主機(jī)命令
CMD command param1 # CMD["echo","hello world"]
ENTRYPOINT command param1 #ENTRYPOINT ["echo"] 可以從CLI接受參數(shù)
ENV key value # ENV var1=Tutorial var2=point 設(shè)置環(huán)境變量
28. 設(shè)置container的工作路徑
WORKDIR dirname #設(shè)置工作目錄
29. ??多個(gè)containers之間如何通信??

Container Linking better option than exposing ports

docker run --link=...

30. Data Volumes
  1. 當(dāng)container創(chuàng)建時(shí)初始化
  2. 能夠共享,以及重用在許多container之間
  3. container刪除了,他還在
  4. 任何改變,直接體現(xiàn)

run的時(shí)候 指定 -v map the volume in the container to a local volume

sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins 

will see all the container files in /home/demo
31. 創(chuàng)建Volume
docker volume create --name=volumename -opt options
32. 查看volume list
docker volume ls
33. container之間通信,container和Docker host之間通信
docker network ls
docker network inspect networkname
34. 多個(gè)containers為一個(gè)service服務(wù)

Docker Compose

an application which required NGINX and MYSQL

下載docker-compsoe

docker-compose version
docker-compose.yml
keywords:
./docker-compose up #run docker-compose
Kubernetes

管理services - service由多個(gè)containers組成

35. docker的端口映射怎么搞

在容器啟動(dòng)時(shí),不指定端口映射,在容器外部無法通過網(wǎng)絡(luò)來訪問容器內(nèi)的應(yīng)用和服務(wù)

run的時(shí)候-p -P參數(shù)來指定

-p指定要映射的端口,一個(gè)指定端口上只可以綁定一個(gè)容器
-P將容器內(nèi)部開放的網(wǎng)絡(luò)端口隨機(jī)映射到宿主機(jī)的一個(gè)端口上
--link 使多個(gè)container互聯(lián),而不暴露端口
docker run --name webapp --link mysql:db -it -d ubuntu /bin/sh

端口映射支持的格式

  1. ip:hostport:containerport #指定ip、指定宿主機(jī)port、指定容器port

  2. ip::containerport www.365soke.cn #指定ip、未指定宿主機(jī)port(隨機(jī))、指定容器port

  3. hostport:containerport #未指定ip、指定宿主機(jī)port、指定容器port

docker port --help
Docker的文件系統(tǒng)是如何工作的
  1. Docker鏡像是由多個(gè)文件系統(tǒng)(只讀層)疊加而成

  2. 當(dāng)我們啟動(dòng)一個(gè)容器的時(shí)候,Docker會(huì)加載只讀鏡像層并在其上(譯者注:鏡像棧頂部)添加一個(gè)讀寫層

  3. 為了能夠保存(持久化)數(shù)據(jù)以及共享容器間的數(shù)據(jù),Docker提出了Volume的概念

  4. 容器的數(shù)據(jù)被保存在容器之內(nèi),它只在容器的生命周期內(nèi)存在,會(huì)隨著容器的被刪除而被刪除。當(dāng)然,也可以使用 docker commit 命令將它持久化為一個(gè)新的鏡像。

    1. 它可以繞過默認(rèn)的聯(lián)合文件系統(tǒng),而以正常的文件或者目錄的形式存在于宿主機(jī)上
    2. 使用 -v 來掛載主機(jī)上的一個(gè)文件到容器內(nèi)的一個(gè)文件

docker底層架構(gòu)

https://blog.csdn.net/CleverCode/article/details/83863925
C/S
https://www.cnblogs.com/zhangxingeng/p/11236968.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容