1. 程式人生 > 其它 >0基礎學習docker

0基礎學習docker

進入docker容器命令

docker exec -it 容器id bash

獲取映象

# 1.獲取映象,映象託管倉庫
docker search centos # 查詢centos映象
docker images # 檢視本地的映象
docker pull centos # 下載映象 預設是centos:latest
docker pull centos:7.8.2003 # 後面也可以跟版本
docker info | grep Root # 檢視docker檔案儲存路徑
ls /var/lib/docker/image/overlay2/imagedb/content/sha256/ #儲存著docker映象的檔案
# 該檔案的作用是
記錄 映象 和容器的配置關係

# 使用不同的映象 生成容器
# -it 開啟一個互動式的終端 --rm 容器退出時刪除該容器
docker run -it --rm centos bash

檢視映象

docker images # 檢視映象
# 只列出id引數
-q
# 格式顯示映象
# 這是docker的模版語言
docker images --format "{{.ID}}--{{.Repository}}"

刪除映象

# 根據映象的id,名字,摘要等
docker rmi hello-world
# 刪除容器
docker rm 容器id

管理映象

docker images -aq # 檢視映象的id
docker rmi `docker images -aq` # 批量刪除映象
# 匯出映象
docker images save centos:7.8.2003 > /opt/centos7.8.2003.tgz
# 匯入映象
docker image load -i /opt/centos7.8.2003.tgz

Docker 容器管理

docker run等於建立+啟動

docker run 映象名,如果映象不存在,則會線上去下載該映象
注意:容器內的程序必須處於前臺執行,否則容器就會直接退出,如果容器內什麼事也沒做,容器也會掛掉
-d 後臺執行
--rm 容器掛掉後自動被刪除
--name 給容器起名字

docker run centos
這個寫法,會產生多條獨立的容器記錄,容器內沒有程式在跑,因此掛掉了
# 執行容器,且進入容器內,且在容器內執行某條命令
docker run -it centos bash
# 讓容器後臺執行,會返回一個容器id
docker run -d centos ping baidu.com
# 檢視容器日誌
docker logs -f
docker logs 容器id | tail -5
# 檢視容器的詳細資訊
docker container inspect 容器id
# 容器的埠對映
docker run -d --name my_nginx -p 80:80 nginx
# 檢視容器的埠對映
docker port 容器id
# 容器的隨機埠對映
docker run -d --name my_nginx_random -P nginx
# 容器的提交
docker commit 容器id 新的映象名

Docker file

FROM 指定基礎映象
MAINTAINER 指定維護者資訊,可以沒有
RUN 在命令前面加上RUN指令即可
ADD 新增一個宿主機的檔案到容器內,有自動解壓的功能
COPY 作用和ADD是一樣的,COPY就僅僅是拷貝
WORKDIR 設定當前工作目錄
VOLUME 設定卷,掛載主機目錄
EXPOSE  在容器內暴露一個埠
CMD 指定容器啟動時做什麼事

dockerfile實踐

# 1.建立Dockerfile,注意檔名,必須是這個
FROM nginx
RUN echo '<meth charset=utf8>超哥帶你用docker執行nginx服務' > /user/share/nginx/html/index.html

# 2.構建Dockerfile
docker build .

# 3.修改映象名字
docker tag 映象id 名字
# 4.執行該映象
docker run -d -p 80:80 my_nginx

dockerfile指令的用法

# COPY
COPY chaoge.py /home/

# 支援多個檔案,以及萬用字元形式複製
COPY chaoge* /tmp/cc?.txt /home/

# ADD
ADD chaoge.tgz /home/