docker - 如何启动使用 compose 创建的多个 docker 图像并上传到另一台服务器?
问题描述
我docker-compose.yml
用一些服务创建了文件:db - wordpress - phpmyadmin。
我使用以下命令导出了服务:
docker save $(docker images | sed '1d' | awk '{print $1 ":" $2 }') -o allinone.tar
我使用以下命令将它们导入新服务器:
docker load -i allinone.tar
现在的结果docker images
如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0 86xxxxxd20 x days ago xxxxB
wordpress latest bxxxxxxe65 x days ago xxxxB
phpmyadmin latest cfxxxxae14 x days ago xxxxB
我不明白如何像在另一台服务器上一样启动它们。
如果我使用 docker-compose,它说我没有 yml 文件,我每次都必须重新创建它吗?
也许我应该用 docker build 创建一个构建?
编辑: 我将此配置用于测试目的:
services:
db:
image: mysql:8.0
container_name: db
restart: unless-stopped
environment:
- MYSQL_DATABASE=wordpress
volumes:
- dbdata:/var/lib/mysql
command: '--default-authentication-plugin=mysql_native_password'
networks:
- app-network
wordpress:
depends_on:
- db
image: wordpress:5.4.2-fpm-alpine
container_name: wordpress
restart: unless-stopped
environment:
- WORDPRESS_DB_HOST=db:3306
- WORDPRESS_DB_USER=user
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_DB_NAME=wordpress
volumes:
- wordpress:/var/www/html
networks:
- app-network
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 3333:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORT: password
networks:
- app-network
volumes:
wordpress:
dbdata:
networks:
app-network:
driver: bridge
解决方案
The docker-compose.yml
file contains the orchestration between these containers.
If you want to keep this orchestration you must reuse this yml
file and run it with docker-compose up
.
推荐阅读
- javascript - Vue3:嵌套路由和动态布局组件
- typescript - 努力使用 Next JS (Typescript) 在 VSCode 中调试 Jest 测试
- visual-c++ - CMAKE 无法在 msvc 编译器中检测到 RC 编译器
- c# - 拒绝访问路径“c:\windows\system32\inetsrv\wooOrders.log”
- python - 从数据框列替换 </p>
- wordpress - 如何从 wordpress rest api 中删除 javascript 代码
- java - 如何在窗口上输入值或短语?
- javascript - 你能模糊一组复选框吗?
- python - 如果遇到加号(+),则使用正则表达式强制国家代码
- image - 从图库中获取图像并立即打开裁剪视图颤动