中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用dockerfile文件和registry私有倉庫

發布時間:2020-06-03 20:38:41 來源:億速云 閱讀:692 作者:Leah 欄目:云計算

如何使用dockerfile文件和registry私有倉庫?相信很多新手小白還沒學會這個技能,通過這篇文章的總結,希望你能學會使用dockerfile文件和registry私有倉庫。

Dockerfile常用命令(安全)
1.》FROM:構建鏡像基于那個鏡像
例如:FROM centos:7
2》MAINTAINER:鏡像維護者名字或郵箱地址
例如:MAINTAINER adam
3》RUN:構建鏡像時運行的shell命令
例如:
RUN[“yum”,”install”,”httpd”]
RUN yum -y install httpd
4>CMD:運行容器時執行的shell命令
例如:
CMD[“/bin/bash”]  或shell
5>EXPOSE聲明容器的服務端口
例如:EXPOSE   80   443
6》ENV:設置容器環境變量
例如
ENV  MYSQL_ROOT_PASSWORD  123.com
7》ADD:拷貝文件或目錄的鏡像,如果是URL或壓縮包會自動下載或自動解壓
ADD <源文件>... <目標目錄>
ADD[“源文件”...”目標目錄”]
8》COPY:拷貝文件或目錄到鏡像容器內,跟ADD類似,但不具備自動下載或解壓功能。
9》ENTRYPOINT:運行容器時執行的shell命令
例如
ENTRYPOINT[“/bin/bash”,”-c”,”command”]
ENTRYPOINT /bin/bash -c ‘command’
10>VOLUME:指定容器掛載點到宿主機自動生成的目錄或其他容器
例如:  (數據持久化)
VOLUME [“/var/lib/mysql”]
docker run  -it --name  xxx  /var/lib/mysql  --volume 指定的是容器 目錄,會將其放到宿主機的某個目錄。
11>USER:為RUN。CMD和ENTYRYPOINT執行命令指定運行用戶
12>WORKDIR:為RUN,CMD,ENTRYPOINT,COPY和ADD設置工作目錄,意思為切換目錄
例如:
WORKDIR: /var/lib/mysql
13>HEALTHCHECK:健康檢查
14>ARG構建時指定的一些參數
例如:
FROM centos:7
ARG user
USER  $user
注意:
1.RUN在building時運行,可以寫多條
2.CMD和ENTRYPOINT在運行CONTAINER(容器)時運行,只能寫一條,如果寫多條,最后一條生效
3.CMD在run時可以被COMMAND覆蓋,ENTRYPOINT不會被COMMAND覆蓋,但可以指定--ENTRYPOINT覆蓋。
4.如果在dockerfile里需要往鏡像內導入文件則此文件必須在dockerfile所在目錄或子目錄下。

測試實驗:
使用dockerfile文件制作一個鏡像基于centos:7 鏡像部署安裝nginx服務
注意Nginx包需要與dockfile文件在同一目錄,要不運行時是dockerfile文件不允許的
vim  Dockerfile
配置:
FROM    centos:7
RUN     yum -y install gcc  pcre-devel openssl-devel zlib-devel
RUN     yum -y install make
COPY    nginx-1.14.0.tar.gz /
RUN     tar -zxf  nginx-1.14.0.tar.gz -C /usr/src
RUN     useradd -M -s /sbin/nologin nginx
WORKDIR /usr/src/nginx-1.14.0
RUN     ./configure  --prefix=/usr/local/nginx --user=nginx  --group=nginx
RUN     make && make install
RUN     ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
RUN     nginx -t
RUN     nginx
EXPOSE  80

另一種將COPY改為ADD的創建鏡像
FROM centos:7
RUN yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
ADD nginx-1.14.0.tar.gz /usr/src/
RUN useradd -M -s /sbin/nologin nginx
WORKDIR /usr/src/nginx-1.14.0
RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
RUN make && make install
RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
RUN nginx -t
RUN nginx
EXPOSE 80

如果編譯安裝時,MAKE不上,需要在Dockerfile文件中添加
yum一個make。

執行Dockerfile文件的命令:

docker build  -t  test1  .

查看鏡像
docker images
如何使用dockerfile文件和registry私有倉庫

3)將制作的鏡像運行一個容器,使容器運行時自動開啟nginx服務。驗證服務正常運行。
創建容器
docker run -itd --name  test1 test1:latest
進入容器
docker exec -it test1 /bin/bash

如果想要保證容器運行之后,nignx服務開啟后面需要添加nginx -g "daemon off;"
docker run -itd  --name  test1-2 test1:latest  nginx -g "daemon off;"
查看容器信息
docker inspect  test1-2

curl 172.17.0.2
如何使用dockerfile文件和registry私有倉庫
運行一個私有倉庫,將自制鏡像上傳到私有倉庫,且開啟另外一臺虛擬機同樣加入私有倉庫,在docker02上下載私有倉庫鏡像并運行一個容器,驗證服務正常運行。
Registry
用docker容器運行registry私有倉庫服務
docker  pull registry:2(下載鏡像)
如何使用dockerfile文件和registry私有倉庫

運行私有倉庫服務
docker  run -itd  --name  registry   --restart=always  
-p 5000:5000  -v  /registry:/var/lib/registry  registry:2
-p:端口映射,宿主機端口:容器暴漏的端口。
-v:掛載目錄,宿主機的目錄;容器內的目錄。(自動創建目錄,并掛載)

鏡像重命名;docker tag test1:latest (   鏡像名)192.168.1.1:5000/test (更改后的名)

上傳到私有倉庫
docker push  192.168.1.1:5000/test:latest 
如何使用dockerfile文件和registry私有倉庫
需要https的所以要更改(記住目錄路徑)
vim  /usr/lib/systemd/system/docker.service (更改)
如何使用dockerfile文件和registry私有倉庫
Secure安全,insecure不安全的
[root@docker test1]# systemctl  daemon-reload
[root@docker test1]# systemctl  restart  docker

docker push  192.168.1.1:5000/test:latest (上傳到私有倉庫)
cd /registry/ 私有倉庫位置
在第二臺docker2上下載私有倉庫鏡像并運行一個容器,驗證服務正常運行。

vim  /usr/lib/systemd/system/docker.service (更改)
如何使用dockerfile文件和registry私有倉庫
systemctl  daemon-reload
systemctl  restart  docker
下載鏡像
docker pull  192.168.1.1:5000/test:latest 在私有倉庫下載鏡像
docker images
制作容器lbs1
docker run -itd  --name  lbs1 192.168.1.1:5000/test:latest  nginx -g "daemon off;"
查看容器lbs1
docker  inspect lbs1
訪問nginx
curl 172.17.0.2

以上就是dockerfile文件和registry私有倉庫的使用方法了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赫章县| 界首市| 乌什县| 阜城县| 上饶县| 隆尧县| 堆龙德庆县| 应城市| 昌平区| 峨眉山市| 清流县| 定南县| 香河县| 临高县| 江门市| 游戏| 乐昌市| 湟中县| 大埔县| 穆棱市| 登封市| 榆林市| 吉木乃县| 建昌县| 汝城县| 井研县| 彭州市| 内江市| 弋阳县| 光泽县| 郸城县| 新野县| 舟山市| 三河市| 平塘县| 信阳市| 曲周县| 汕尾市| 七台河市| 武功县| 新巴尔虎左旗|