昨天,我决定学习docker并将其用于一个预prestashop项目,因此我创建了一个docker-compose.yml,我的目标是运行一个带有phpmyadmin和mysql的预存储库,所有这些都链接在一起。
在昨天离开之前,我不想失去我所做的一切,所以我运行了一个docker save和一个docker commit,所以每当我回来的时候,我就可以运行我所做的保存并运行它,而不会丢失任何东西(比如快照)。
一切正常,容器正在运行,今天,当我尝试运行docker ps -a 时,我有一个空的输出。然而,我的项目仍然在为、、prestashop、和phpmyadmin开发localhost:8081。
如何找到容器,并将其保存,以便在另一台计算机上使用?
docker-compose.yml:
version: "3.8"
services:
db:
image: mysql:latest
command: --default-authentication-plugin=mysql_native_password
container_name: db
restart: always
volumes:
- db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
networks:
- dev
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
restart: always
depends_on:
- db
ports:
- 8081:80
environment:
PMA_HOST: db
networks:
- dev
apache:
build: php
container_name: prestashop
ports:
- 8080:80
volumes:
- ./php/vhosts:/etc/apache2/sites-enabled
- ./:/var/www/html
restart: always
networks:
- dev
networks:
dev:
volumes:
db-data:Dockerfile:
FROM php:7.4-apache
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
RUN apt-get update \
&& apt-get install -y --no-install-recommends locales apt-utils git libicu-dev g++ libpng-dev libxml2-dev libzip-dev libonig-dev libxslt-dev;
RUN echo "en_US.UTF8 UTF8" > /etc/locale.gen && \
echo "fr_FR.UTF-8 UTF-8" >> /etc/locale.gen && \
locale-gen
RUN curl -sSk https://getcomposer.org/installer | php -- --disable-tls && \
mv composer.phar /usr/local/bin/composer
RUN docker-php-ext-configure intl
RUN docker-php-ext-install pdo pdo_mysql gd opcache intl zip calendar dom mbstring zip gd xsl
RUN pecl install apcu && docker-php-ext-enable apcu
RUN a2enmod rewrite && service apache2 restart
RUN chown -R www-data:w输出 docker images:
REPOSITORY TAG IMAGE ID CREATED SIZE
prestadock_apache latest 740c640530f3 2 days ago 657MB
phpmyadmin latest f7fd780fedba 7 days ago 469MB
php 7.4-apache 899ab23566b7 7 days ago 414MB
mysql latest c8562eaf9d81 10 days ago 546MB输出 docker network ls
NETWORK ID NAME DRIVER SCOPE
e03870bf5fec bridge bridge local
63cfaacfbb2e chronopiles bridge local
c23a0b85edb9 host host local
1ae1b68b12c0 none null local
1e8010db79e3 prestadock_dev bridge local
590b5e949037 prestashop bridge local发布于 2021-01-29 09:21:46
更简单的方法是将图像推送到停靠中心,只需将yml文件复制到另一台pc并运行docker-compose up命令即可。要实现这一点,您必须使用您的停靠中心用户名添加imagename,如下所示:
version: "3.8"
services:
db:
image: mysql:latest
command: --default-authentication-plugin=mysql_native_password
container_name: db
restart: always
volumes:
- db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
networks:
- dev
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
restart: always
depends_on:
- db
ports:
- 8081:80
environment:
PMA_HOST: db
networks:
- dev
apache:
build: php
image: benju1/prestashop
container_name: prestashop
ports:
- 8080:80
volumes:
- ./php/vhosts:/etc/apache2/sites-enabled
- ./:/var/www/html
restart: always
networks:
- dev
networks:
dev:
volumes:
db-data:若要将对接器图像推送到停靠中心,请按照以下命令指示,在docker-compose.yml文件文件夹中打开shell或命令行。
输入
docker login并输入docker-compose build .,并输入以生成图像H 111类型docker-compose push,并输入将图像推送到停靠中心H 213F 214
然后在另一台计算机中复制您的docker-compose.yml文件,只需键入docker-compose up -d即可运行您的项目。
https://stackoverflow.com/questions/65951412
复制相似问题