1. 程式人生 > 其它 >docker面試1-8

docker面試1-8

目錄

1. docker有哪些網路?

Docker網路模式 配置 說明
host模式 –net=host 容器和宿主機共享Network namespace。
container模式 –net=container:NAME_or_ID 容器和另外一個容器共享Network namespace。 kubernetes中的pod就是多個容器共享一個Network namespace。
none模式 –net=none 容器有獨立的Network namespace,但並沒有對其進行任何網路設定,如分配veth pair 和網橋連線,配置IP等。
bridge模式 –net=bridge (預設為該模式)

網路詳細介紹:https://www.cnblogs.com/guyouyin123/p/15593529.html

2. dockerfile關鍵字有哪些?

FROM     # 基於什麼映象
WORKDIR  # 指定工作路徑,沒有就建立目錄
------
COPY src/ /app		 # 拷貝,檔案地址 將宿主機src目錄下所有拷貝到app目錄下
ADD      # 拷貝,也可以是檔案地址,也可以是url網路資源     
------
RUN      # 執行shell語句
------
ENTRYPOINT  
		 1.執行容器時,執行的指令碼.可以是json資料指定,也可以是shell語句指定
		 2.只能有一個ENTRYPOINT指令,如果有多個ENTRYPOINT指令則以最後一個為準
		 3.ENTRYPOINT指令或CMD指令,至少必有其一。
CMD			 
			1.執行容器時,執行的指令碼.可以是json資料指定,也可以是shell語句指定
			2.只能有一個CMD指令,如果有多個CMD指令則以最後一個為準。
			3.ENTRYPOINT指令或CMD指令,至少必有其一。
------
EXPOSE   # 指定當前映象暴露出來的埠
VOLUME   # 指定對映檔案
------
ENV      # 引數,系統的,從構建到執行都有效。eg:指定環境變數,ENV A=10或者A 10;兩者一樣
ARG      # 引數,構建映象的時候才有效,執行容器時無效
------
LABEL    # 指定元資料(標識),eg: k="v" k1="v1"  沒有實質性的作用
ONBUILD  # 被其他映象繼承(FROM)時才會執行。 eg: ONBUILD ENV A=10
------
STOPSIGNAL   # 指定當前容器用什麼訊號停止,指定訊號名SIGIN、SIGKILL
HEALTHCHECK  # 檢查容器健康狀態的配置
SHELL        # 指定當前shell是哪一種shell,linux一般是/bin/sh,winodws是cmd,可以改成/bin/bash
------
USER  # 指定run cmd等指令執行時的使用者身份,不指定預設為root
      # USER用法:USER 使用者名稱:使用者組 或  USER 使用者id:組id

3. 構建dockerfile,並打標籤

docker build .  //構建映象
docker build -t bikesvc:latest . //構建映象並打標籤
docker tag 69b968e77592 docker.xxx.cn/jeff_test:latest //打標籤

4. 推送映象到映象倉庫

docker push docker.xxx.cn/jeff_test:latest

5. 如何建立並啟動Docker容器?

docker run -it -d <image_name>
docker run -itd -p6379:6379 redis:4.0.9 //redis

6. 如何反向打包製作Docker映象?

docker save 5962dbc864ad > 3.tar

7. docker常用命令

docker run //建立容器
docker save //儲存映象
docker images //檢視映象
docker ps -a // 檢視所有容器
docker ps // 檢視啟動的容器
docker stop //停止容器
docker start //啟動容器
docker rm //刪除容器
docker exec -it 685e1 bash //進入容器

8.描述 Docker 容器的生命週期

建立容器
執行容器
暫停容器(可選)
取消暫停容器(可選)
啟動容器
停止容器
重啟容器
殺死容器
銷燬容器