最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解

 更新時(shí)間:2019年03月07日 15:32:30   作者:shuzhou12  
今天小編就為大家分享一篇關(guān)于第一次構(gòu)建、運(yùn)行、發(fā)布、獲取docker鏡像的步驟詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

1、前言

過(guò)去,如果您要開(kāi)始編寫(xiě)Python應(yīng)用程序,第一步就是把Python的運(yùn)行環(huán)境安裝到您的機(jī)器上,而且安裝的環(huán)境還要和線上的一致,比較麻煩。

使用Docker,您可以從docker的官方registry或者其他倉(cāng)庫(kù),獲取一個(gè)可移植的Python運(yùn)行環(huán)境鏡像,無(wú)需安裝。然后,你可以基于這個(gè)鏡像開(kāi)發(fā)你的應(yīng)用程序,這樣可以確保您的應(yīng)用程序,依賴項(xiàng)和運(yùn)行時(shí)都一起運(yùn)行。

2、構(gòu)建一個(gè)python鏡像

2.1、為了構(gòu)建您自己的鏡像,首先需要?jiǎng)?chuàng)建一個(gè)名稱為Dockerfile的文件,用于定義創(chuàng)建鏡像并運(yùn)行container所需的步驟。 Dockerfile中的每條指令都會(huì)在鏡像中創(chuàng)建一個(gè)層級(jí)。當(dāng)您更改Dockerfile并重新build鏡像時(shí),只重建那些更改的層級(jí)。與其他虛擬化技術(shù)相比,這是使鏡像輕量,小巧,快速的一個(gè)原因。

創(chuàng)建一個(gè)空目錄,創(chuàng)建一個(gè)名為Dockerfile的文件,將以下內(nèi)容復(fù)制并粘貼到該文件中并保存。

# Use an official Python runtime as a parent image
FROM python:2.7-slim
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
ADD . /app
# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
# Define environment variable
ENV NAME World
# Run app.py when the container launches
CMD ["python", "app.py"]

2.2 在與Dockerfile文件同一個(gè)目錄下,創(chuàng)建requirements.txt和app.py文件。因?yàn)镈ockerfile文件的ADD命令,上面的兩個(gè)文件會(huì)被加到最終的鏡像中;因?yàn)镋XPOSE命令,訪問(wèn)容器的80端口,才可以訪問(wèn)到app.py的內(nèi)容,注意:這里的80端口指的是容器暴露的端口,并不是實(shí)際機(jī)器的端口。
requirements.txt

Flask
Redis

app.py

from flask import Flask
from redis import Redis, RedisError
import os
import socket
# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)
app = Flask(__name__)
@app.route("/")
def hello():
  try:
    visits = redis.incr("counter")
  except RedisError:
    visits = "<i>cannot connect to Redis, counter disabled</i>"
  html = "<h3>Hello {name}!</h3>" \
      "<b>Hostname:</b> {hostname}<br/>" \
      "<b>Visits:</b> {visits}"
  return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)
if __name__ == "__main__":
  app.run(host='0.0.0.0', port=80)

2.3 把我們的應(yīng)用打包為鏡像,要在DockerFile目錄下執(zhí)行。這會(huì)創(chuàng)建一個(gè)Docker鏡像,我們將使用-t標(biāo)記它,以使鏡像有一個(gè)友好的名稱。

docker build -t friendlyhello

3 、運(yùn)行鏡像

運(yùn)行應(yīng)用程序,使用-p將機(jī)器的端口4000映射到容器暴露的端口80:

docker run -p 4000:80 friendlyhello

您也可以在shell中使用curl命令來(lái)查看相同的內(nèi)容。

$ curl http://localhost:4000
<h3>Hello World!</h3><b>Hostname:</b> 8fc990912a14<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>

按crtl+c結(jié)束應(yīng)用

現(xiàn)在讓我們?cè)诤笈_(tái)運(yùn)行應(yīng)用程序:

docker run -d -p 4000:80 friendlyhello

查看所有的container信息

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

現(xiàn)在使用docker container stop來(lái)結(jié)束進(jìn)程,使用CONTAINER ID,如下所示:

docker container stop 1fa4ab2cf395

4、發(fā)布鏡像

4.1、我使用的是阿里云的docker registry,感覺(jué)應(yīng)該會(huì)比較快。首先你要有一個(gè)阿里云的賬號(hào)。然后登陸進(jìn)去新建一個(gè)倉(cāng)庫(kù),設(shè)置命名空間等信息。

4.2 登陸阿里云的docker registry,后續(xù)操作都需要登陸才可以執(zhí)行。

sudo docker login --username=admin registry.cn-hangzhou.aliyuncs.com

4.3 為鏡像打標(biāo),tag為可選的,如果沒(méi)有,默認(rèn)為latest

格式:

docker tag image_name registry_url/namespace/repository_name:[tag]

例如

docker tag friendlyhello registry.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

查看本地的鏡像列表

docker image ls

4.4 發(fā)布鏡像

docker push registry.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

4.5 現(xiàn)在你可以在任何一臺(tái)機(jī)器上執(zhí)行下面的命令,運(yùn)行鏡像

docker run -p 4000:80 registry.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

4.6 拉取鏡像

docker pull registry.cn-hangzhou.aliyuncs.com/shuzhou/demo1:latest

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Docker上部署Nginx的方法步驟

    Docker上部署Nginx的方法步驟

    本文主要介紹了Docker上部署Nginx的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Docker 容器操作指令匯總詳解

    Docker 容器操作指令匯總詳解

    這篇文章主要介紹了Docker 容器操作指令匯總詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 簡(jiǎn)簡(jiǎn)單單使用Docker部署Confluence

    簡(jiǎn)簡(jiǎn)單單使用Docker部署Confluence

    本文使用的環(huán)境是docker17版本,重點(diǎn)給大家講解使用Docker部署Confluence的問(wèn)題,本文給大家介紹的很好對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-06-06
  • Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式

    Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式

    這篇文章主要介紹了Docker安裝redis并且設(shè)置密碼,以及進(jìn)入容器修改密碼方式,
    2024-01-01
  • Docker Desktop更改鏡像存儲(chǔ)位置的實(shí)現(xiàn)

    Docker Desktop更改鏡像存儲(chǔ)位置的實(shí)現(xiàn)

    本文主要主要介紹了Docker Desktop更改鏡像存儲(chǔ)位置的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Docker啟動(dòng)mysql服務(wù)的實(shí)現(xiàn)步驟

    Docker啟動(dòng)mysql服務(wù)的實(shí)現(xiàn)步驟

    本文主要介紹了Docker啟動(dòng)mysql服務(wù)的實(shí)現(xiàn)步驟,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • docker-desktop啟動(dòng)k8s的詳細(xì)方法

    docker-desktop啟動(dòng)k8s的詳細(xì)方法

    這篇文章主要介紹了docker-desktop啟動(dòng)k8s,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 使用Docker部署MySQL 5.7&8.0主從集群的方法步驟

    使用Docker部署MySQL 5.7&8.0主從集群的方法步驟

    這篇文章主要介紹了使用Docker部署MySQL 5.7&8.0主從集群的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 詳解Docker 修改已有鏡像(commit )

    詳解Docker 修改已有鏡像(commit )

    本篇文章主要介紹了詳解Docker 修改已有鏡像(commit ),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • 解決docker不加載 /etc/docker/daemon.json文件的問(wèn)題小結(jié)

    解決docker不加載 /etc/docker/daemon.json文件的問(wèn)題小結(jié)

    在Ubuntu 24.04 LTS Server上安裝Docker后,發(fā)現(xiàn)鏡像不保存且配置文件路徑不正確,通過(guò)檢查發(fā)現(xiàn)Docker服務(wù)啟動(dòng)時(shí)加載了非預(yù)期的配置文件,最終通過(guò)修改服務(wù)配置文件解決了問(wèn)題,感興趣的朋友跟隨小編一起看看吧
    2024-11-11

最新評(píng)論

朝阳市| 通榆县| 柳河县| 石首市| 皮山县| 陵水| 宜都市| 东安县| 平乐县| 江油市| 澄江县| 宣汉县| 陆川县| 武鸣县| 抚州市| 奉化市| 寻乌县| 海城市| 高清| 荃湾区| 呈贡县| 孝昌县| 利辛县| 河北区| 习水县| 茌平县| 怀安县| 赤水市| 秦安县| 博罗县| 如东县| 红河县| 喀喇沁旗| 都安| 修武县| 彰化市| 江西省| 通道| 即墨市| 麦盖提县| 都昌县|