社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

grapes

grapes 最近创建的主题
grapes 最近回复了
5 年前
回复了 grapes 创建的主题 » 在不使用IP的情况下从主机与docker内的服务通信

欢迎您选择更适合您需要的方式。

选择1。使用主机的网络。在这种情况下,Docker不会为container创建单独的网络,而您可以连接到container的服务,就像它们将在您的主机上运行一样:

docker run --network=host <image_name>

这种方法的缺点是隔离度低,因而安全。您不需要在这里公开任何端口-如果服务监听 8080 ,打开 localhost:8080 好好享受吧。

第二种方法更为正确——在容器中公开(以某种方式转发)内部端口,并将它们映射到主机中的端口。

docker run -p 8080:80 <image_name>

这将映射端口 80 从集装箱到港口 8080个 在主机上。与前面的示例一样,仍然使用 localhost ,例如。 本地主机:8080 .

5 年前
回复了 grapes 创建的主题 » 基于python中两个短序列的过滤行

我不确定你对 this distance can be 2 letters or more ,是否必须进行检查,但以下代码将为您提供所需的输出:

mot1 = 'AATAAA'
mot2 = 'GGAC'

with open('infile.txt', 'r') as inp:
    last_id = None
    for line in inp:
        if line.startswith('>'):
            last_id = line
        else:
            if mot1 in line and mot2 in line:
                print(last_id)
                print(line)

如果需要,可以将输出重定向到文件

5 年前
回复了 grapes 创建的主题 » Dockers-Flask Python错误

我认为错误信息看起来是不言而喻的。升级一下 pip 在你的内心 Dockerfile :

RUN pip install --upgrade pip

RUN python -m pip install --upgrade pip

在大多数Python发行版中,pip不是最新的,需要手动升级,而我看不到 皮普 在您的 停靠文件

同时尝试安装 gcc -有些python包需要编译,而alpine python没有 海合会 默认情况下。

RUN apk add -y gcc

因为Docker在默认情况下是无状态的。每次你打电话 docker run 它重建了容器。如果要保留某些数据,有两种常规方法:

  1. 容器离开后不能取出。刚开始的时候给你的容器起个可爱的名字,比如 docker run --name jessica mongo 然后,在随后的通话中,使用 docker start jessica

  2. 使用卷存储数据并在容器之间共享。在本例中,您将使用卷参数启动容器,如 docker run -v /home/data:/data mongo .另外,您还必须重新配置 mongodb 在路径中保存数据 /data 在集装箱里。这种方法更简单,可用于在不同容器之间共享数据,以及为第一次运行提供默认数据

升级版

使用时 docker-compose 要启动容器,如果需要在会话之间持久化数据,只需使用 外部的 卷,这是您预先创建的。

首先创建卷,比方说 lovely 以下内容:

docker volume create lovely

然后把它用在 docker-compose.yml 以下内容:

version: '3'
services:
  db1:
    image: whatever
    volumes:
      - lovely:/data
  db2:
    image: whatever
    volumes:
      - lovely:/data
volumes:
  lovely:
    external: true
5 年前
回复了 grapes 创建的主题 » Docker容器中的python,优雅地停止

抓住 KeyboardInterrupt 就这样。

if __name__ == '__main__':
  logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
  try:
    while True:
      time.sleep(1)
      logging.info("doing something in a loop ...")
  except KeyboardInterrupt as ex:
    print('goodbye!')
5 年前
回复了 grapes 创建的主题 » 在docker compose中的nsqd

Docker方法是一个服务/一个容器。

docker-compose 使服务的编排很容易,就像它们在一个容器中(或者更容易),因为您可以使用服务提供者的规范图像而不是构建自己的服务。

同时,整个Docker基础设施在维护单进程容器方面也进行了很好的调整。

5 年前
回复了 grapes 创建的主题 » Docker for Windows-装载目录为空

如果你需要文件 容器放入主机,更好地使用 docker cp 命令: https://docs.docker.com/engine/reference/commandline/cp/

它看起来像: docker cp my_db_dev1:/var/lib/mysql d:\docker\data

小精灵

实际上,我想在其他容器中持久化数据库文件, 所以我想要使用量

在这种情况下,您必须:

  1. 开始使用 docker-compose 编排容器。

  2. docker-compose.yml 创建卷,卷在所有容器之间共享。类似于:

docker-compose.yml文件

version: '3'
services:
  db1:
    image: whatever
  volumes:
    - myvol:/data

  db2:
    image: whatever2
  volumes:
    - myvol:/data

volumes:
  myvol:  

描述: https://docs.docker.com/compose/compose-file/#volume-configuration-reference

5 年前
回复了 grapes 创建的主题 » 如何将run<image>参数传递给dockerfile使用?

当然,因为你很困惑 Docker's build run 阶段。事实上,环境变量工作得很好。

你打电话 docker run -e VAR2=betterValue test 事实上,您可以使用这个值运行容器,但是目录 goodValue 创建于 建造 阶段。

你必须:

呼叫 VAR2=/foo docker build -t test . 你要得到你的 /foo 在生成阶段创建的文件夹。

5 年前
回复了 grapes 创建的主题 » 让班上的人知道Pycharm

将文件夹标记为 Sources Root 在井手。 Right Click -> Mark Directory As -> Sources Root

5 年前
回复了 grapes 创建的主题 » 对有效函数名python的未解析引用

在使用函数之前应该声明它。在全球范围内使用 for -在全局范围内执行的循环,这意味着立即执行。

5 年前
回复了 grapes 创建的主题 » 用python从文本文件中提取数据

请尝试以下代码:

with open('mydata.txt') as f:
  for line in f:
    line = line.strip(' \t\r\n')  # remove spaces and line endings
    if line.ednswith(';'):
      pass # this is category definition
    else:
      pass # this is data line
5 年前
回复了 grapes 创建的主题 » 卷容器附件的Docker合成问题

添加 external 属性到卷部分:

version '3'
services:
   my_service:
      image: doc_image
      volumes:
         - doc_volume:/directory
volumes:
   doc_volume:
       external: true   # << here we go

你的问题是 docker-compose 创建另一个卷,除非明确告诉他使用外部卷。外部手段创造不是靠码头工人组成的。

5 年前
回复了 grapes 创建的主题 » docker compose中的环境变量

这是可行的。你必须申报 FOO 去某个地方得到结果。以下代码将起作用:

来电显示

#!/bin/sh
export FOO=/home
docker-compose up
5 年前
回复了 grapes 创建的主题 » 为api请求在python中jsonify制表符

它将如下所示:

d = {'jean': 22, 'pierre': 26, 'john': 21, 'charles': 23, 'test': 25, 'test2': 45}
res = []
for k, v in d.items():
  res.append({"name": k, "age": v})

print(res)
5 年前
回复了 grapes 创建的主题 » 获取python docker容器以与redis docker容器交互

这就是Docker网络。快速解决方案-使用 host 两个容器的网络模式。缺点是隔离度低,但您可以使其快速工作:

docker run -d --network=host redis ...
docker run --network=host python-redis-py ...

然后从连接 python redis 只使用 localhost 作为主机名。

更好的解决方案是使用Docker用户定义的桥接网络

# create network
docker network create foo
docker run -d --network=foo --name my-db redis ...
docker run    --network=foo python-redis-py ...

注意在这种情况下你 不能 使用 本地服务器 而是使用 my-db 作为主机名。所以我才用 --name my-db 启动第一个容器时的参数。在用户定义的桥接网络中,容器通过它们的名称相互连接。

Docker加盟 ENTRYPOINT CMD 如果两个命令行都使用 杰森 符号,如您的示例中所示。

这是JSON符号: CMD [ "dotnet", "/app/netcore/Somename.dll"]

这是外壳符号: CMD dotnet /app/netcore/Somename.dll

另一件你需要知道的事-写的是什么 docker run ... <image_name> ... 之后 被认为是 CMD .

所以,总结一下。

  1. 命令行的常量(不可变)部分,如 dotnet foo.dll 你可以放进去 入口点 .

  2. 变量部分,与其他参数一样,您提供 docker run 并且可以选择将默认值设置为 CMD 在里面 Dockerfile

例子:

文档文件

...
ENTRYPOINT ["dotnet", "/app/netcore/Somename.dll"]
CMD ["--help"]

命令行1:

docker run ... <your image name> --environment=Staging --port=8080 

将导致 dotnet /app/netcore/Somename.dll --environment=Staging --port=8080

命令行2:

docker run ... <your image name>

将导致 dotnet /app/netcore/Somename.dll --help . --help 来自默认值,在DockerFile中定义。

5 年前
回复了 grapes 创建的主题 » 如何在Raspberry PI等硬件平台中嵌入机器学习python代码?

python支持各种平台,包括 arm-based .

您的Raspberry PI支持Linux发行版,只需安装python并继续。