我一直在使用这个Docker-image tutum/wordpress来演示一个Wordpress网站.最近我发现图像使用了MySQL数据的卷.
所以问题是:如果我想备份和恢复容器,我可以尝试提交图像,然后删除容器,并从提交的图像创建一个新容器.但是,如果我这样做,卷将被删除,我的所有数据都将消失.
必须有一些简单的方法来备份我的容器及其卷数据,但我无法在任何地方找到它.
我已经成功地能够在使用卷的docker容器之间共享文件夹
docker run -v /host/path:/container/path ...
Run Code Online (Sandbox Code Playgroud)
但我的问题是这与使用VOLUME
Dockerfile中的命令有什么区别
VOLUME /path
Run Code Online (Sandbox Code Playgroud)
我正在使用一个有VOLUME
命令的图像,我想知道如何与我的主机共享它.我使用-v
上面的命令完成了它,但我不知道我是否需要-v
和VOLUME
.
我打开一个像这样的docker容器中的交互式shell
sudo docker exec -t -i {container_name} bash
Run Code Online (Sandbox Code Playgroud)
到目前为止这么好,但试图运行nano
结果:
打开终端时出错:未知.
Kubernetes被称为容器集群"scheduler/orchestrator",但我不知道这意味着什么.在阅读了Kubernetes网站和(模糊的)GitHub wiki之后,我能说的最好的是它以某种方式确定哪些虚拟机可用/能够运行你的Docker容器,然后在那里部署它们.但这只是我的猜测,我没有在他们的文档中看到任何支持这一点的具体措辞.
那么,什么是Kubernetes,准确,并有一些什么具体的,它解决的问题?
我对docker注册表和存储库之间的区别感到困惑.似乎Docker文档可以互换使用这两个词.此外,存储库有时也称为图像,例如来自其文档的图像:
为了将存储库推送到其注册表,您需要命名一个映像或将容器提交到我们在此处看到的命名映像.
现在,您可以将此存储库推送到由其名称或标记指定的注册表中.
如何将存储库推送到注册表?你不是把图像推到存储库吗?
我正在尝试使用 Airflow 和 Postgres 构建一个 docker 容器,但在构建过程中出现了许多错误,如下所示。我尝试过降级,markupsafe
如下requirements.txt
所示,但没有帮助。我可以做什么来解决这个问题?
# I tried this version:
markupsafe==2.1.1
# and then also this one:
markupsafe==2.0.1
Run Code Online (Sandbox Code Playgroud)
错误信息:
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.7/site-packages/markupsafe/__init__.py)
Run Code Online (Sandbox Code Playgroud)
我的docker-compose.yml
:
version: '3'
services:
postgres:
image: postgres:11.2
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
ports:
- "5432:5432"
webserver:
image: puckel/docker-airflow:1.10.4
build:
context: https://github.com/puckel/docker-airflow.git#1.10.4
dockerfile: Dockerfile
args:
AIRFLOW_DEPS: gcp_api,s3
restart: always
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
volumes:
- ./sparkify/dags:/usr/local/airflow/dags
# Uncomment …
Run Code Online (Sandbox Code Playgroud) 我有一种预感,Docker可以大大改善我的webdev工作流程 - 但我还没有完全围绕如何处理将Docker添加到堆栈的项目.
基本软件堆栈看起来像这样:
Docker镜像提供自定义LAMP堆栈
GIT
我可以想象工作流看起来有点像下面这样:
Dockerfile
定义符合上述要求的LAMP容器
~/dev/cmsdir
~/dev/cmsdir/
版本控制之下~/dev/cmsdir
到/var/www/
容器上/dev/cmsdir/
cmsdir
通过git 获取-projectcmsdir
到/var/www
现在,这在纸上看起来相当不错,但我不太确定这是否是正确的方法.
在本地开发时,如何让数据库在重新启动容器实例之间保持不变?或者我是否需要在每次旋转容器之前运行sql-dump?
我应该为db和apache服务器设置单独的容器实例吗?或者为上述用例提供单个容器是否足够?
如果为数据库和服务器使用单独的容器,我怎样才能同时自动上下旋转?
我如何实际装入/dev/cmsdir/
容器目录/var/www/
?我应该利用数据量吗?
我错过了任何陷阱吗?什么可以简化?
在我的Dockerfile中,我想定义稍后可以在Dockerfile中使用的变量.
我知道该ENV
指令,但我不希望这些变量成为环境变量.
有没有办法在Dockerfile范围声明变量?
Windows防火墙阻止了我允许Docker for Windows在Windows 10计算机上共享C:的尝试.
Windows防火墙关闭时工作正常.当我得到它
防火墙阻止Windows和容器之间的文件共享.有关详细信息,请参阅文档
文件说
您无需在任何其他网络上打开端口445.默认情况下,允许从10.0.75.2(虚拟机)连接到10.0.75.1端口445(Windows主机).
我试图找到如何做到的"谷歌搜索" - 有人可以建议吗?
在docker image prune的docker 文档中,可以使用-a标志
删除所有未使用的图像,而不仅仅是悬空图像
然后
删除所有悬空图像.如果指定了-a,还将删除未被任何容器引用的所有图像.
有人可以向我解释悬挂图像是什么,悬空和未使用图像之间有什么区别?
docker ×10
backup ×1
dependencies ×1
dockerfile ×1
importerror ×1
kubernetes ×1
mount-point ×1
python ×1
variables ×1
volumes ×1