docker快速入門

閒來無事,複習docker的時候,正好寫一篇快速入門python

基礎環境

系統爲centos7.7,發現沒有docker,嗯,一條命令搞定web

yum -y install docker #yum安裝docker
systemctl  start docker.service #啓動docker

定義Dockerfile

dockerfile用來構建鏡像的文本文件,文本內容爲構建鏡像所須要的指令和說明docker

定義一個超級簡單的Dockerfileflask

[root@te1 app]# cat Dockerfile
FROM python:2.7-slim #跟面嚮對象語言的類同樣,表示以哪一個基礎鏡像定製

WORKDIR /data/docker/app #docker工做目錄

COPY . /data/docker/app #複製當前文件到/data/docker/app目錄

RUN pip install -r requirements.txt #在docker build時運行,此處經過pip安裝flask

CMD ["python", "hello.py"] #在docker run時運行此命令
[root@te1 app]# cat requirements.txt
flask
[root@te1 app]# cat hello.py
#一個簡單的flask web站點
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return 'hello world'

if __name__ == "__main__":
  app.run(host='0.0.0.0', port=8000)

經過Dockerfile編譯鏡像

cd /data/docker/app && docker build -t hello .

查看鏡像

docker images

image.png

經過鏡像運行一個容器

docker run -it -d --name 'first-hello' -p80:8000 hello

image.png
-it -i 標準輸入,-t表示容許一個終端
-d 後臺運行
--name 容器名字
-p 對外暴露端口,此處將docker的8000端口映射爲80向外暴露centos

查看容器進程

docker ps -a

image.png

訪問這個flask的web容器

[root@te1 app]# curl 127.0.0.1:80
hello world

進入容器

有些時候須要進入容器調試排查故障等bash

[root@te1 app]# docker exec -it first-hello bash
root@64660eb25be0:/data/docker/app# ls
Dockerfile  dump.rdb  hello.py    requirements.txt
相關文章
相關標籤/搜索