导航
- docker 概念
- 手动从镜像运行一个容器
- 应用 dockerfile 打包镜像
- 应用 compose 部署多容器利用
- 给 docker 加上数据长久
- docker 在服务器部署
- 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 容器中间接运行.
具体操作看实例操作
实例操作
-
在当前目录下创立 a.py 文件
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)
-
在当前目录下创立 install.sh 文件
# install.sh apt update apt -y install python3 python3-pip pip3 install flask
-
在当前目录下创立 run.sh 文件
# run.sh cd /code python3 a.py
-
关上终端,输出以下命令
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
- 关上浏览器输出:localhost:8000/