标签: docker

如何使用其数据卷备份Docker容器?

我一直在使用这个Docker-image tutum/wordpress来演示一个Wordpress网站.最近我发现图像使用了MySQL数据的卷.

所以问题是:如果我想备份和恢复容器,我可以尝试提交图像,然后删除容器,并从提交的图像创建一个新容器.但是,如果我这样做,卷将被删除,我的所有数据都将消失.

必须有一些简单的方法来备份我的容器及其卷数据,但我无法在任何地方找到它.

backup docker linux-containers

125
推荐指数
8
解决办法
15万
查看次数

docker在主机上安装卷

我已经成功地能够在使用卷的docker容器之间共享文件夹

docker run -v /host/path:/container/path ...
Run Code Online (Sandbox Code Playgroud)

但我的问题是这与使用VOLUMEDockerfile中的命令有什么区别

VOLUME /path
Run Code Online (Sandbox Code Playgroud)

我正在使用一个有VOLUME命令的图像,我想知道如何与我的主机共享它.我使用-v上面的命令完成了它,但我不知道我是否需要-vVOLUME.

volumes mount-point docker

123
推荐指数
5
解决办法
15万
查看次数

在docker容器中运行nano

我打开一个像这样的docker容器中的交互式shell

sudo docker exec -t -i {container_name} bash
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好,但试图运行nano结果:

打开终端时出错:未知.

docker

123
推荐指数
7
解决办法
8万
查看次数

Kubernetes实际上做了什么?

Kubernetes被称为容器集群"scheduler/orchestrator",但我不知道这意味着什么.在阅读了Kubernetes网站和(模糊的)GitHub wiki之后,我能说的最好的是它以某种方式确定哪些虚拟机可用/能够运行你的Docker容器,然后在那里部署它们.但这只是我的猜测,我没有在他们的文档中看到任何支持这一点的具体措辞.

那么,什么是Kubernetes,准确,并有一些什么具体的,它解决的问题?

docker kubernetes

123
推荐指数
3
解决办法
2万
查看次数

Docker注册表和存储库之间的区别

我对docker注册表和存储库之间的区别感到困惑.似乎Docker文档可以互换使用这两个词.此外,存储库有时也称为图像,例如来自其文档的图像:

为了将存储库推送到其注册表,您需要命名一个映像或将容器提交到我们在此处看到的命名映像.

现在,您可以将此存储库推送到由其名称或标记指定的注册表中.

如何将存储库推送到注册表?你不是把图像推到存储库吗?

docker

122
推荐指数
3
解决办法
5万
查看次数

ImportError:无法从“markupsafe”导入名称“soft_unicode”

我正在尝试使用 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)

python dependencies importerror docker docker-compose

122
推荐指数
6
解决办法
17万
查看次数

什么是一个好的docker webdev工作流程?

我有一种预感,Docker可以大大改善我的webdev工作流程 - 但我还没有完全围绕如何处理将Docker添加到堆栈的项目.

基本软件堆栈看起来像这样:

软件

  • Docker镜像提供自定义LAMP堆栈

    • Apache有几个模块
    • MYSQL
    • PHP
    • 一些CMS,例如Silverstripe
  • GIT

工作流程

我可以想象工作流看起来有点像下面这样:

发展

  1. 写一个Dockerfile定义符合上述要求的LAMP容器
    • REQ:机器应该在启动后立即启动apache/mysql
  2. 构建docker镜像
  3. 将运行CMS所需的文件复制到例如 ~/dev/cmsdir
    • ~/dev/cmsdir/版本控制之下
  4. 运行docker容器,然后以某种方式安装~/dev/cmsdir/var/www/容器上
  5. 填充数据库
  6. 做的工作 /dev/cmsdir/
  7. 提交并关闭docker容器

部署

  1. 设置远程主机(例如使用ansible)
  2. 将容器映像推送到远程主机
  3. cmsdir通过git 获取-project
  4. 运行docker容器,拉入数据库并挂载cmsdir/var/www

现在,这在纸上看起来相当不错,但我不太确定这是否是正确的方法.

问题:

  1. 在本地开发时,如何让数据库在重新启动容器实例之间保持不变?或者我是否需要在每次旋转容器之前运行sql-dump?

  2. 我应该为db和apache服务器设置单独的容器实例吗?或者为上述用例提供单个容器是否足够?

  3. 如果为数据库和服务器使用单独的容器,我怎样才能同时自动上下旋转?

  4. 我如何实际装入/dev/cmsdir/容器目录/var/www/?我应该利用数据量吗?

  5. 我错过了任何陷阱吗?什么可以简化?

docker

121
推荐指数
2
解决办法
2万
查看次数

如何在Dockerfile中定义变量?

在我的Dockerfile中,我想定义稍后可以在Dockerfile中使用的变量.

我知道该ENV指令,但我不希望这些变量成为环境变量.

有没有办法在Dockerfile范围声明变量

variables docker dockerfile

121
推荐指数
5
解决办法
11万
查看次数

设置为Windows防火墙以允许Docker for Windows共享驱动器

Windows防火墙阻止了我允许Docker for Windows在Windows 10计算机上共享C:的尝试.

Windows防火墙关闭时工作正常.当我得到它

防火墙阻止Windows和容器之间的文件共享.有关详细信息,请参阅文档

文件说

您无需在任何其他网络上打开端口445.默认情况下,允许从10.0.75.2(虚拟机)连接到10.0.75.1端口445(Windows主机).

我试图找到如何做到的"谷歌搜索" - 有人可以建议吗?

docker docker-for-windows

121
推荐指数
12
解决办法
12万
查看次数

Docker:什么是悬空图像,什么是未使用的图像?

docker image prune的docker 文档中,可以使用-a标志

删除所有未使用的图像,而不仅仅是悬空图像

然后

删除所有悬空图像.如果指定了-a,还将删除未被任何容器引用的所有图像.

有人可以向我解释悬挂图像是什么,悬空和未使用图像之间有什么区别?

docker

120
推荐指数
5
解决办法
4万
查看次数