Tag: bash

在Mac容器的Docker中缺less回车

突然之间,我的所有docker/docker-compose exec/run命令都是打印日志,由于缩进(见照片),缺less回车制作命令行。 我重新安装docker到出厂设置,但是这并没有解决任何问题。 我应该在哪里解决这类问题? 更新这是在docker-for-mac中的一个活跃的问题。 我刚刚更新到17.06.0-rc1-ce-mac13,那是当我开始有问题。 另外,如果您投票结束,您可以发表评论吗?

docker执行官Heredoc

我基本上试图通过Flask-migrate的Flask应用上下文来执行heredoc 下面是我试图在我的bash脚本中运行的命令 $ docker exec -it mycontainer ./manage shell <<-EOF # shell commands to be executed EOF 当试图执行上面的命令时,我得到: cannot enable tty mode on non tty input 这是pipe理文件: #!/usr/bin/env python from middleware import create_app, config from middleware.models import db from flask.ext.script import Manager from flask.ext.migrate import Migrate, MigrateCommand app = create_app(config) migrate = Migrate(app, db) manager […]

Docker从Dockernetworking中断开所有容器

我有dockernetworking“my_network”。 我想用docker network rm my_network删除这个docker network rm my_network 。 在此之前,我应该断开所有我的容器从这个networking。 我可以使用docker network inspect并获取输出 [ { "Name": "my_network", "Id": "aaaaaa", "Scope": "some_value", "Driver": "another_value", "EnableIPv6": bool_value, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "10.0.0.0/1" } ] }, "Internal": false, "Containers": { "bbb": { "Name": "my_container_1", "EndpointID": "ENDPOITID1", "MacAddress": "MacAddress1", "IPv4Address": "0.0.0.0/1", "IPv6Address": "" […]

为什么“docker运行”错误“没有这样的文件或目录”?

我正在尝试运行一个运行自动构build的容器。 这是dockerfile: FROM ubuntu:14.04 MAINTAINER pmandayam # update dpkg repositories RUN apt-get update # install wget RUN apt-get install -y wget # get maven 3.2.2 RUN wget –no-verbose -O /tmp/apache-maven-3.2.2.tar.gz http://archive.apache.or g/dist/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.tar.gz # verify checksum RUN echo "87e5cc81bc4ab9b83986b3e77e6b3095 /tmp/apache-maven-3.2.2.tar.gz" | md5 sum -c # install maven RUN tar xzf /tmp/apache-maven-3.2.2.tar.gz -C /opt/ RUN ln -s […]

在.bashrc中导出DOCKER_HOST对terminal中的相同命令产生不同的结果

在我可以使用我的docker容器(在OSX上使用Boot2Docker)之前,我总是要记得进入 export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375 在我的terminal,自然我经常忘记这一点。 所以我想我只是将该行添加到我的~/.bashrc文件,但是当我这样做,并检查DOCKER_HOST的值是tcp://192.168.42.43:4243而不是tcp://192.168.42.43:2375 。 打破它: boot2docker ip =>“虚拟机的主机接口IP地址是:192.168.59.103” boot2docker ip 2 =>“虚拟机的主机接口IP地址是:192.168.59.103” boot2docker ip 2>/dev/null =>“192.168.59.103”(好吧,我得到的,但我不知道如何工作,我不知道:4243是从哪里来的。 这里究竟发生了什么,港口为什么不同呢?

我如何强制取消使用bash命令dockerbuild?

我问的原因是因为我们使用AWS codebuild,我需要做数据库迁移。 如果数据库迁移中断,我想取消代码生成并回滚刚刚创build的迁移。 我有这个部分的工作,现在我需要做的是取消dockerbuild中途。 我怎样才能做到这一点? 这是使用knex迁移命令的.sh文件: #!/bin/bash echo "running" function mytest { "$@" local status=$? if [ $status -ne 0 ]; then knex migrate:rollback echo "Rolling back knex migrate $1" >&2 exit fi return $status } mytest knex migrate:latest 运行exit不会取消/中断docker构build。 我的Dockerfile(只是incase): FROM node:6.2.0 # Create app directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install […]

如何知道我的docker mysql容器何时启动,mysql已准备好接受查询?

我正在部署一些不同的docker容器,mysql是第一个。 我想在数据库启动后立即运行脚本并继续构build其他容器。 该脚本一直失败,因为它试图运行时,设置MySQL(从这个官方的MySQL容器 )入口脚本,仍然在运行。 sudo docker run –name mysql -e MYSQL_ROOT_PASSWORD=MY_ROOT_PASS -p 3306:3306 -d mysql [..] wait for mysql to be ready [..] mysql -h 127.0.0.1 -P 3306 -u root –password=MY_ROOT_PASS < MY_SQL_SCRIPT.sql 是否有一种方法来等待docker容器内完成一个入口的mysql安装脚本的信号? 巴什睡眠似乎是一个不理想的解决scheme。 编辑:去这样的bash脚本。 不是最优雅和有点暴力,但作品像一个魅力。 也许有人会觉得有用。 OUTPUT="Can't connect" while [[ $OUTPUT == *"Can't connect"* ]] do OUTPUT=$(mysql -h $APP_IP -P :$APP_PORT -u yyy […]

docker运行-i -t image / bin / bash – 首先创build源文件

这工作: # echo 1 and exit: $ docker run -i -t image /bin/bash -c "echo 1" 1 # exit # echo 1 and return shell in docker container: $ docker run -i -t image /bin/bash -c "echo 1; /bin/bash" 1 root@4c064f2554de:/# 问题 :如何将文件input到shell中? (这不起作用) $ docker run -i -t image /bin/bash -c "source <(curl -Ls […]

自动configurationJava以使用分配给其Docker容器的最大RAM

如果我做docker run –memory=X通过Bash脚本运行Java应用程序,有什么办法让这个Bash脚本可靠地推断有多less内存已分配给容器? 基本上,我想要这个Bash脚本来做这样的事情: #!/bin/bash # (Do some other stuff…) MAX_RAM="$(get-max-ram)" exec java "-Xms${MAX_RAM}" "-Xmx${MAX_RAM}" -jar my_jar.jar 另外,如果我这样做,我应该使Java使用less于最大的RAM?

使docker集装箱能够优雅地停下来永远运转

我正在尝试创build一个docker集装箱。 它应该永远在后台运行。 但是,每当我按Ctrl + C或docker stop ,它应该closures,不浪费任何进一步的时间。 我目前的代码 #RUN trap 'echo $excode' EXIT HUP INT QUIT PIPE TERM ENTRYPOINT while :; do read; done #ENTRYPOINT trap "exit 1" SIGTERM SIGHUP && tail -f /dev/null & wait && exit 0 我可以让它永远运行,但由于某种原因,我的脚本没有收到TRAP事件。 任何线索如何解决这个问题。