共计 934 个字符,预计需要花费 3 分钟才能阅读完成。
我的项目文件
./ | |
├── Dockerfile | |
├── env.php | |
└── index.php |
Dockerfile
# 根底镜像 | |
FROM php:7.4-cli | |
# copy 以后宿主机目录下的内容到镜像目录 | |
COPY . /apps/demo | |
# 设置工作目录 | |
WORKDIR /apps/demo | |
# 定义一些环境变量作为运行参数 | |
ENV APP_NAME=""ENV APP_VER="0.0.1" | |
# 设置容器入口程序 (此时的 pwd 在工作目录下) | |
ENTRYPOINT ["php", "./index.php"] |
tips
: 如果须要登录容器后再启动服务,能够设为启动一个 bash
会话来保障容器不退出
ENTRYPOINT ["bash", "-c", "echo welcome to docker"]
反正入口程序肯定要有 会话放弃
的个性,否则容器运行完命令后就会主动退出了。
index.php
<?php | |
// loop 作为入口程序 避免容器运行完结主动退出 | |
// 生产中大都是 http、websocket、tcp 等服务 | |
while (true) { | |
echo "hello docker" . PHP_EOL; | |
sleep(3); | |
} |
env.php
<?php | |
// 读取容器中的环境变量 | |
echo getenv("APP_NAME") . PHP_EOL; | |
echo getenv("APP_VER") . PHP_EOL; |
打包镜像
# 打包要养成版本号的良好习惯 | |
docker build -t php-demo:v1 . | |
docker build -t php-demo:v2 . | |
# 查看本地镜像 | |
docker images |
创立 / 运行容器
# 应用镜像创立容器 传入环境变量 | |
docker run -it \ | |
--privileged=true \ | |
-e APP_NAME="php-demo-1" \ | |
-e APP_VER="1.0.1" \ | |
--name php-demo-1 php-demo:v1 | |
# 查看容器 | |
docker ps | |
# 登录容器 | |
docker exec -it php-demo-1 bash | |
# 读取环境变量 | |
php env.php |
文件 cp
# 拷贝宿主机文件到容器 | |
docker cp tmp.php php-demo-1:/apps/demo | |
# 拷贝容器文件到宿主机 | |
docker cp php-demo-1:/apps/demo/env.php env.php |
正文完