docker教程系列二

導航

手動從鏡像運行一個容器

手動啓動一個容器

手動在本地電腦的docker容器中運行一個web應用

``` sh
    # 下面的命令啓動一個docker容器
    docker run -d -t -p 8000:5000 --name demo ubuntu:18.04

    # 這條命令的解釋
    -d 的意思是讓容器在後臺運行
    -t 極少能用到,用於讓一個空白的Ubuntu鏡像在後臺運行
    -p 用於指定端口映射,表示在本機訪問8000會被自動轉到容器中5000端口
       必須保證本機沒有其餘應用程序佔用了8000端口,不然這裏會失敗
    --name demo 制定了容器的名字是demo
    ubuntu:18.04 是啓動容器時用的鏡像名, docker會自動從鏡像服務器去下載這個鏡像
```

啓動容器常見的問題

# 啓動一個端口爲3456的進程
    docker run -t -d -p 3456:5000 --name test ubuntu:18.04
    # 報錯1,端口被佔用,刪除test容器來不安比3456端口的佔用
    docker rm -f test
    # 報錯2,名字已存在, 那麼更名字, 也能夠用上面的刪除容器命令
    docker run -t -d -p 3456:5000 --name test1 ubuntu:18.04

關於容器相關的命令

# 列出本機正在運行的容器
    docker container ls

    # 列出本機全部容器,包括終止運行的容器
    docker container ls --all

    # 查看正在運行的容器
    docker ps

    # 查看最新指定數量的容器的狀態
    docker ps -n 10

    # 終止容器
    docker stop <container id>/<container name>

    # 對終止運行的容器重啓, 容器id經過docker ps查詢
    docker start <container id>/<container name>

    # 查看容器日誌
    docker logs <container id>/<container name

在容器中安裝必備軟件

啓動容器之後,說明了運行了一個鏡像實例,好比ubuntu:18.04鏡像生成的test容器。這個容器目前有了ubuntu操做系統的文件管理功能,內存管理功能,進程調度等功能。如今還須要擁有python3, pip 環境, apt工具包。

```sh
    docker run -d -t -p 8000:5000 --name unbuntu:18.04
    # 下載apt工具包
    docker exec demo apt update
    docker exec apt -y install python3 python3-pip
    # 安裝flask庫
    docker exec demo pip3 install flask
```

在容器中運行程序

上面說過,使用docker的目的就是軟件應用帶環境安裝。如今環境好了,須要運行軟件應用

```sh
    # demo 容器中建立/code目錄
    docker exec demo mkdir /code
    # cp參數把當前文件夾的a.py拷貝到demo容器的/code/a.py
    docker cp a.py demo:/code/a.py
    # 運行demo容器中的a.py
    docker exec demo python3 /code/a.py
```

用腳本的方式配置容器,而後運行腳本配置並開啓新容器

以前的一系列命令有些繁瑣, 其實更好的方式是在宿主機寫腳本,而後cp到docker容器中直接運行.
具體操做看實例操做

實例操做

  1. 在當前目錄下建立a.py文件python

    from flask import Flask
    
     app = Flask(__name__)
    
     @app.route('/')
     def index():
         return 'Hello from Docker'
    
     # 默認端口5000
     if __name__ == "__main__":
         app.run(host="0.0.0.0", debug=True)
  2. 在當前目錄下建立install.sh文件git

    # install.sh
     apt update
     apt -y install python3 python3-pip
     pip3 install flask
  3. 在當前目錄下建立run.sh文件github

    # run.sh
     cd /code
     python3 a.py
  4. 打開終端,輸入如下命令web

    docker run -d -t -p 8000:5000 --name unbuntu:18.04
     # demo 容器中建立/code目錄
     docker exec demo mkdir /code
     docker cp install.sh "demo:/code/install.sh"
     docker cp run.sh "demo:/code/run.sh"
     docker cp a.py "demo:/code/a.py"
     docker exec demo bash /code/install.sh
     docker exec demo bash /code/run.sh
  5. 打開瀏覽器輸入:localhost:8000/
相關文章
相關標籤/搜索