docker教程系列二
Posted 河畔的风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker教程系列二相关的知识,希望对你有一定的参考价值。
导航
- 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/
以上是关于docker教程系列二的主要内容,如果未能解决你的问题,请参考以下文章