Tag: bash

切割/格式化docker服务命令

对不起,不准确的标题,但我实际上是在最简单的方式来削减这个: Docker服务ls 进入这个: docker服务ls切割 尝试了一些-f但不工作。 也许有一些grep / sed / cut的东西,但我没有find一个令人满意的方式… 非常感谢时间

Docker拒绝运行bash

我有以下docker设置: python27.Dockerfile FROM python:2.7 COPY ./entrypoint.sh /entrypoint.sh RUN mkdir /src RUN apt-get update && apt-get install -y bash libmysqlclient-dev python-pip build-essential && pip install virtualenv ENTRYPOINT ["/entrypoint.sh"] EXPOSE 8000 WORKDIR /src CMD source /src/env/bin/activate && python /src/manage.py runserver entrypoint.sh #!/bin/bash # some code here… # some code here… # some code here… exec "$@" 每当我尝试运行我的docker容器,我得到python27 […]

如何在Alpine Linux中使用bash脚本?

我有兴趣在Docker-Compose中使用wait-for-it来使用一个服务,使用基于Alpine Linux发行版的映像来等待另一个服务。 但是,如果我克隆wait-for-it存储库,并添加到它下面的Dockerfile , FROM alpine RUN apk –update add bash COPY wait-for-it.sh wait-for-it.sh CMD ["./wait-for-it.sh", "www.google.com:80"] 然后,我使用docker build –tag waitforit .来构build它docker build –tag waitforit . 然后docker run waitforit ,但我得到这个错误消息: timeout: can't execute '15': No such file or directory wait-for-it.sh: timeout occurred after waiting 15 seconds for www.google.com:80 相比之下,这是我在(Ubuntu 16.04 LTS)计算机上运行此命令时看到的: wait-for-it.sh: waiting 15 seconds […]

bash正则expression式来获得docker容器端口号

所以我试图从我的docker集群中获得一个特定的端口号,这是因为我以后需要端口。 当我做docker-compose ps时,我得到以下输出 contaimer_db_1 docker-entrypoint.sh mysqld Up 3306/tcp container_node_1 /usr/bin/supervisord -n Up 0.0.0.0:3902->3902/tcp container_php_1 docker-php-entrypoint php-fpm Up 9000/tcp container_redis_1 docker-entrypoint.sh redis … Up 6379/tcp 我想要的是从container_node_1 3902的端口号 到目前为止我得到了 docker-compose ps | grep "[ :]\?[[:digit:]]\{4\}" 但是由于它们连续有4个数字,所以会得到所有的端口。 我将如何改变这一点,以确保它只会得到节点端口? 如果有任何帮助,节点容器将始终显示为0.0.0.0:1234-> 1234

执行CMD脚本时,无法在Dockerfile中启动Mysql

在我的Dockerfile width CMD [ "./myscript.sh" ]的末尾,在bash脚本中执行mysqld时,我无法启动mysql demon。 但是, CMD [ "mysqld" ]工作。 Dockerfile FROM mysql:5.7 USER mysql COPY ./setconf.sh . COPY config/my.cnf /etc/mysql/conf.d CMD [ "./setconf.sh" ] # CMD ["mysqld"] # This command works ! 我得到这个错误: [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it [ERROR] Fatal error: Can't open and lock […]

dynamic获取由docker run命令创build的正在运行的容器标识/名称

所以我试图运行下面的shell脚本,它需要容器的容器id /名称(脚本将在其中运行)。 一种方法可能是执行docker ps然后获取Container Id,但这不会是dynamic的。 那么有没有办法做到这一点dynamic? #!/bin/bash docker exec <container id/name> /bin/bash -c "useradd -m <username> -p <password>"

Bash脚本用dynamic名称重命名文件夹,并将其replace为内部的string

我刚刚开始使用Docker,而且我是bash脚本中的新手,但现在我需要编写bash脚本来完成下一件事: 我有一些subdirs 2个目录: Rtp/和Rtp-[version]/ ,我需要如果Rtp-[version]/目录存在重命名为Rtp/并覆盖它的内容。 [版本] – 是dynamic号码。 我的目标结构: |– Rtp |— subdir 1 |— subdir 2 |– Rtp-1.0 (or Rtp-1.6, Rtp-2.7) |— subdir 1 |— subdir 2 在这之后,我需要在新的Rtp/ dir中find特定的文件app.properties ,并在其中更改string: myvar=my value myvar=new value ,然后用3个文件 我试过这个链接: http : //stackoverflow.com/questions/15290186/ …: find . -name 'Rtp-' -exec bash -c 'mv $0 ${0/*/Rtp}' {} \; find . […]

从Docker中的bash中logging:logging器错误:socket / dev / log:没有这样的文件或目录

我正在configurationlogging器到我的脚本 #! /bin/bash alias log="logger -s -t conf_nginx" exec >> /var/log/myscript/file.log exec 2>&1 log "this a log message" 当我正在执行这个脚本时,我只在日志文件中看到这一行 $ cat /var/log/myscript/file.log logger: socket /dev/log: No such file or directory 请帮忙 $cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" NAME="Debian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=debian HOME_URL="debian.org/&quot; SUPPORT_URL="debian.org/support&quot; BUG_REPORT_URL="bugs.debian.org/&quot;

在Docker中设置环境variables

我在创build一个没有设置环境variables的容器的Docker时遇到了问题,我知道我在映像定义中设置了这个variables。 我创build了一个Dockerfile来生成OpenSuse 42.3的映像。 我需要在图像中设置一些环境variables,以便任何从图像启动容器的人都可以使用我编译并放置在图像中的代码。 我创build了一个名为“image_env_setup.sh”的shell文件,其中包含必要的环境variables定义。 我也手动将这些环境variables定义添加到Dockerfile。 USER codeUser COPY ./docker/image_env_setup.sh /opt/MyCode ENV PATH="$PATH":"/opt/MyCode/bin:/usr/lib64/mpi/gcc/openmpi/bin" ENV LD_LIBRARY_PATH="/usr/lib64:/opt/MyCode/lib:" ENV PS1="[\u@docker: \w]\$ " ENV TERM="xterm-256color" ENV GREP_OPTIONS="–color=auto" ENV EDITOR=/usr/bin/vim USER root RUN chmod +x /opt/MyCode/image_env_setup.sh USER codeUser RUN /opt/MyCode/image_env_setup.sh RUN /bin/bash -c "source /opt/MyCode/image_env_setup.sh" 我用来创build容器的命令是: docker run -it -d –name ${containerName} -u $userID:$groupID \ -e USER=$USER –workdir="/home/codeUser" \ –volume="${home}:/home/codeUser" […]

为什么我的sedreplace为&执行失败?

我试图在Linux的Docker容器上运行以下命令,但我得到以下错误: root@instance-0024c639:/etc/java-8-openjdk# sed -is/^assistive_technologies=/#&/ accessibility.properties [1] 1095 sed: -e expression #1, char 28: unterminated `s' command bash: /: Is a directory [1]+ Exit 1 sed -is/^assistive_technologies=/# 我正在运行的文件内容为: root@instance-0024c639:/etc/java-8-openjdk# cat accessibility.properties # # The following line specifies the assistive technology classes # that should be loaded into the Java VM when the AWT is initailized. # […]