Son*_*tal 2 docker docker-registry docker-compose docker-push
我的 docker-compose 文件中有几个图像和服务,用于创建 PHP、Apache、MySql 和 PHPMyAdmin 环境来运行我的网站。任何人都可以帮助我如何在 Docker Hub 上推送我的所有图像或使用我的网站代码创建一个环境吗?
Dockerfile
FROM php:7.4-apache
RUN docker-php-ext-install mysqli
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
services:
php:
build:
context: .
dockerfile: Dockerfile
ports:
- 80:80
volumes:
- ./src:/var/www/html/
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
Run Code Online (Sandbox Code Playgroud)
index.php 和src文件夹中我的所有网站代码
了解哪些内容可以推送到 Docker Hub,哪些内容不能推送到 Docker Hub 非常有用。Docker Hub 将包含 Docker 映像,但它无法托管数据内容、docker-compose.yml文件本身或非 Docker 映像的任何其他内容。您使用的两个支持容器都使用标准 Docker Hub 映像。因此,您需要使php容器独立,将其推送到 Docker Hub,然后手动将docker-compose.yml文件复制到运行它的位置。
删除对本地系统的依赖。 除了复制 Docker 容器之外,您通常不想复制应用程序源代码。在该docker-compose.yml文件中,删除将volumes:本地系统源代码挂载到容器中的内容,但将其替换为将其复制到映像中的 Dockerfile 行:
COPY ./src/ /var/www/html/
Run Code Online (Sandbox Code Playgroud)
这不会是一个实时的开发环境,但这没关系。
为您的 Docker Hub 镜像命名。文件中 可以同时包含 abuild:和line 。如果这样做,则会指定构建图像时使用的名称(而不是让 Compose 选择它)。这应该会给你留下:image:docker-compose.yml
COPY ./src/ /var/www/html/
Run Code Online (Sandbox Code Playgroud)
构建并测试。 您应该能够接受此设置;docker-compose down -v清理所有当地文物;docker-compose build图像,并docker-compose up开始这一切。进行您需要的任何手动测试,以及您构建的任何自动化端到端测试。
推图。
services:
php:
build: . # with default Dockerfile
image: myname/myapp
ports:
- '80:80'
# no volumes:
db: # as above
phpmyadmin: # as above
Run Code Online (Sandbox Code Playgroud)
在其他地方运行它。 您需要该docker-compose.yml文件,但不需要任何其他工件。当您在另一台计算机上运行时docker-compose up,它将提取本地尚未拥有的任何图像。(如果是私人图像,您可能需要docker login先到达那里。)
docker-compose push php
Run Code Online (Sandbox Code Playgroud)
数据库内容。 您的docker-compose.yml文件没有声明volumes:存储数据库数据;这可能会导致重新启动时数据丢失。但是,您也无法将这些卷推送到 Docker Hub。您可以在本地系统上备份数据库并在远程系统上恢复;或者您可以在应用程序启动时运行数据库迁移和种子脚本。数据需要与代码(图像)和部署机制(Compose)分开处理。
| 归档时间: |
|
| 查看次数: |
5992 次 |
| 最近记录: |