docker 04 Docker 製作自定義鏡像包

製作自定義鏡像包的兩種方式

    1、創建容器並對容器進行修改,然後打包容器爲鏡像
    2、使用Dockerfile編排鏡像

自定義鏡像

1、創建一個容器 docker run -itd centos
2、進入容器進行修改配置  docker exec -it  容器id  bash
      停止容器,不是必須的
3、創建鏡像並驗證 docker  commit  容器id   鏡像名稱:標籤
4、打包鏡像  docker save  鏡像名稱 > 包名.tar

使用 Dockerfile 編排鏡像

給容器配置 yum 源

查看宿主機的 yum 源配置
[rhel7]
name=rhel
baseurl=ftp://192.168.4.254/rhel7
enabled=1
gpgcheck=0

練習: 創建一個容器,配置 yum 源,並且安裝  ifconfig 命令

使用 Dockerfile 編排鏡像

FROM centos  #基於centos鏡像進行編排(如沒有就搜索並下載,有就直接使用)
RUN  rm -f /etc/yum.repos.d/*.repo  #運行刪除文件命令
ADD  local.repo /etc/yum.repos.d/local.repo   #將當前目錄的local.repo文件複製添加到 docker裏的指定目錄
RUN  yum install net-tools vim-enhanced psmisc iproute -y    #運行安裝軟件命令

編排命令

docker  build  -t  myos:latest  .     #開始編排,使用當前目錄下面的Dockerfile文件進行編排,編排後的鏡像名爲myos,標籤爲latest

基於 myos 創建 httpd 的鏡像

FROM myos 
RUN  yum install -y httpd
ENV  EnvironmentFile=/etc/sysconfig/httpd
EXPOSE 80
CMD  ["/usr/sbin/httpd", "-DFOREGROUND"]

Dockerfile語法格式

– FROM:基礎鏡像
– MAINTAINER:鏡像創建者信息
– EXPOSE:開放的端口
– ENV:設置變量
– ADD:複製文件到鏡像
– RUN:製作鏡像時執行的命令,可以有多個
– WORKDIR:定義容器默認工作目錄
– CMD:容器啓動時執行的命令,僅可以有一條CMD
– ENTRYPOINT 配置容器啓動後執行的命令,並且不可被 docker run 提供的參數覆蓋。每個 Dockerfile 中只能有一個 ENTRYPOINT,當指定多個時,只有最後一個起效。
– USER ,USER 命令用於設置運行容器的 UID。# Usage: USER [UID]   ; USER 751
– VOLUME , VOLUME 命令用於讓你的容器訪問宿主機上的目錄。# Usage: VOLUME ["/dir_1", "/dir_2" ..]  ; VOLUME ["/my_files"]

創建私有倉庫
1 添加配置文件 /etc/docker/daemon.json

touch  /etc/docker/daemon.json
{
    "insecure-registries" : ["192.168.4.10:5000"]
}

重啓 docker 服務

systemctl restart docker

2 啓動私有倉庫

docker run -d -p 5000:5000 registry

3 測試上傳鏡像到私有倉庫

3.1 標記一下哪個鏡像要上傳

docker  tag   busybox:latest   鏡像服務器ip:5000/busybox:latest

3.2 上傳鏡像

docker  images
docker  push  鏡像服務器ip:5000/busybox:latest

4 私有倉庫的使用

查看私有倉庫裏面的 鏡像
http://192.168.4.10:5000/v2/_catalog
查看私有倉庫裏面鏡像的標籤
http://192.168.4.10:5000/v2/myos/tags/list

5 使用私有倉庫運行容器
5.1 添加配置文件 /etc/docker/daemon.json

touch  /etc/docker/daemon.json
{
    "insecure-registries" : ["192.168.4.10:5000"]
}

5.2 重啓 docker 服務

systemctl  restart  docker

5.3 啓動容器

docker run -itd 192.168.4.10:5000/myos:latest
docker run -itd 192.168.4.10:5000/myos:python

容器的存儲與端口映射

存儲卷的映射

docker run -d  -v /var/webroot:/var/www/html   myos:httpd

博主個人博客網址 :http://blog.doveop.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章