亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何交互式地創建一個Docker容器

如何交互式地創建一個Docker容器

浮云間 2019-04-10 05:04:40
如何交互式地創建一個Docker容器
查看完整描述

2 回答

?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

1. 運行一個Docker實例
Docker首先會嘗試從本地取得并運行所需的鏡像,如果在本地主機上沒有發現,它就會從Docker公共注冊中心拉取。這里,我們將會拉取鏡像并在 Docker 容器中創建一個fedora實例,并連接到它的 tty 上的bash shell。
# docker run -i -t fedora bash

2.安裝Apache網絡服務器
現在,在我們的Fedora基本鏡像實例準備好后,我們將會開始交互式地安裝Apache網絡服務器,而不是為它創建Dockerfile。為了做到這點,我們需要在終端或者shell運行以下命令。
# yum update

# yum install httpd

退出容器的 tty。
# exit

3.保存鏡像
現在,我們要去保存在Fedora實例里做的修改。要做到這個,我們首先需要知道實例的容器ID。而為了得到ID,我們又需要運行以下命令(LCTT 譯注:在容器外執行該命令)。
# docker ps -a

然后,我們會保存這些改變為一個新的鏡像,請運行以下命令。
# docker commit c16378f943fe fedora-httpd

這里,修改已經通過使用容器ID保存起來了,鏡像名字叫fedora-httpd。為了確認新的鏡像是否在運行,我們將運行以下命令。
# docker images

4. 添加內容到新的鏡像
我們自己新的Fedora Apache鏡像正成功的運行,現在我們想添加一些我們網站的網頁內容到Apache網絡服務器,使得網站能夠開箱即用。為做到這點,我們需要創建一個新的Dockerfile,它會處理從復制網頁內容到啟用80端口的所有操作。要達到這樣的目的,我們需要使用我們最喜歡的文本編輯器創建Dockerfile文件,像下面演示的一樣。
# nano Dockerfile

現在,我們需要添加以下的命令行到文件中。
FROM fedora-httpd
ADD mysite.tar /tmp/
RUN mv /tmp/mysite/* /var/www/html
EXPOSE 80
ENTRYPOINT [ "/usr/sbin/httpd" ]
CMD [ "-D", "FOREGROUND" ]

這里,上述的Dockerfile中,放在mysite.tar里的網頁內容會自動解壓到/tmp/文件夾里。然后,整個站點會被移動到Apache的網頁根目錄/var/www/html/,命令expose 80會打開80端口,這樣網站就能正常訪問了。其次,入口點放在了/usr/sbin/https里面,保證Apache服務器能夠執行。
5. 構建并運行一個容器
現在,我們要用剛剛創建的Dockerfile創建我們的容器,以便將我們的網站添加到上面。為做到這,我們需要運行以下命令。
# docker build -rm -t mysite .

建立好我們的新容器后,我們需要要用下面的命令來運行容器。
# docker run -d -P mysite



查看完整回答
反對 回復 2019-04-11
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

創建一個安全的Docker基鏡像的方法
** 構建一個Java環境基鏡像 **

正如我剛解釋的,Alpine Linux是一個構建自有鏡像時不錯的選擇,因此,我們在此將使用它來構建簡潔高效的Docker鏡像,我們開始吧!

組合:Alpine + bash

每個Dockerfile第一個指令都是指定它的父級容器,通常是用于繼承,在我們的例子中是<code>alpine:latest</code>:
sh

FROM alpine:latest

MAINTAINER cSphere <docker@csphere >

RUN apk add --no-cache --update-cache bash

CMD ["/bin/bash"]

```

好了,現在我們構建容器:
sh

$ docker build -t my-java-base-image >

---> Running in 63433312d77e

---> bfe94713797a

Removing intermediate container 63433312d77e

... 省略若干行

Step 4 : CMD /bin/bash

---> Running in d2291684b797

---> ecc443d68f27

Removing intermediate container d2291684b797

Successfully built ecc443d68f27

并且運行它:
sh

$ docker run --rm -ti my-java-base-image

bash-4.3#

成功了!我們有了一個運行著bash的Alpine Linux。



查看完整回答
反對 回復 2019-04-11
  • 2 回答
  • 0 關注
  • 659 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號