Tag: bash

在Docker容器内部访问jboss 8080端口

我在centos6.7 docker收集器中运行jboss5。 使用run.sh -b 0.0.0.0命令运行的JBoss使用run.sh -b 0.0.0.0运行的容器运行docker run -i -t -p 8080:8080 my/jboss /bin/bash 这是我在容器中看到的 [root@e44f2bbab31a bin]# netstat -alnt Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN 这是我在主机上看到的 15:04:17:(~)$ sudo docker […]

如何在“docker run”命令中replacevariables值

我正在使用一个bash脚本,并试图分配一个指纹值如下 export FINGERPRINT=D0:19:C5:80:42:66:56:AC:6F docker run –rm -i -v /var/run/docker.sock:/var/run/docker.sock –name ucp docker/ucp join –replica –fingerprint $FINGERPRINT 然而,bash根本不能代替$ FINGERPRINT的价值

访问参数的数量传入docker run命令脚本

我有一个docker的脚本,看起来像这样: #!/bin/sh LABEL=$1 mkdir -p /backup/$LABEL … 我可以通过$ 1,$ 2等访问通过正常的bash方式传递的参数,但我也需要知道传入的参数的数量。起初我以为我可以这样做: if [ $# -eq 2 ]; then 但是,这是行不通的。 任何想法如何检索参数的数量? TIA,Ole

Docker容器中的jHipster中的Maven-Wrapper:FileNotFoundException

我在一个运行在lubuntu 16.4上的虚拟机中安装了docker。 之后,我按照本教程拉出容器jijster / jijster 。 使用docker exec -it jhipster bash访问它可以正常工作,也可以通过yo jhipster创build应用程序。 但是当我想通过./mvnw使用maven包装来运行它时,会发生以下错误(在一秒之后): Downloading https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip Exception in thread "main" java.io.FileNotFoundException: /home/jhipster/.m2/wrapper/dists/apache-maven-3.3.9-bin/2609u9g41na2l7ogackmif6fj2/apache-maven-3.3.9-bin.zip.part (No such file or directory) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.<init>(FileOutputStream.java:213) at java.io.FileOutputStream.<init>(FileOutputStream.java:162) at org.apache.maven.wrapper.DefaultDownloader.downloadInternal(DefaultDownloader.java:69) at org.apache.maven.wrapper.DefaultDownloader.download(DefaultDownloader.java:60) at org.apache.maven.wrapper.Installer.createDist(Installer.java:64) at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:121) at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:50) 在容器内部似乎没有安装maven,但这是mvnw的目的,对不对? 无论如何,由于缺乏su权限(sudo没有find,只能从terminal“su”工程),我自己(在容器内)安装maven是不可能的。 我在这里没有得到什么错…你能帮忙吗? PS:.m2目录是空的。

Docker里面的Docker(没有命令行)

我想在docker镜像里面运行docker守护进程。 我知道我可以通过在运行Docker镜像时暴露外部docker进程来轻松实现这一点,但不幸的是,我无法控制镜像的运行方式。 我不能使用DIND。 因此,我想在Dockerfile或某个脚本中启动docker服务,这是我的入口点。 我试过调用命令: CMD service docker start 在图像下载并安装docker之后,在一些脚本start.sh包含这个命令并调用它: ENRYPOINT ["path/to/script/start.sh"] 没有一个工作。 是否可以根据需要运行docker,或者我正在做的事情不正确,或者在我的执行环境中是不可能的?

Bash无法创build目录

在docker中 ,我想将文件README.md从现有目录/ opt / ibm / labfiles复制到新的/ input / tmp目录 。 我试试这个 hdfs dfs -put /opt/ibm/labfiles/README.md input/tmp 没有任何效果,因为在根目录中似乎没有/input文件夹。 所以我尝试创build它: hdfs dfs -mkdir /input mkdir:'/input': File exists 但是,当我ls时,没有input文件 或目录 我如何创build一个文件夹并复制文件? 谢谢!!

如何在Docker中创build一个bash脚本文件?

我写了一个脚本,任务是创build一个文本文件并写入两行。 这已经完成,但不止一次,我不明白为什么,因为脚本文件不包含任何循环,一旦文件执行。 #!/bin/bash <other, non-relevant variables and commands> PHP_ROOT_DIR=/etc/php-5.6.22 PHP_CGI_WRAPPER=php-5622 mkdir -p $(dirname $0)/cgi-bin touch $(dirname $0)/cgi-bin/$PHP_CGI_WRAPPER echo -e "#!/bin/bash" >> $(dirname $0)/cgi-bin/$PHP_CGI_WRAPPER echo -e "exec ${PHP_ROOT_DIR}/bin/php-cgi" >> $(dirname $0)/cgi-bin/$PHP_CGI_WRAPPER <other, non-relevant variables and commands> exit 0 输出文件内容: #!/bin/bash exec /etc/php-5.6.22/bin/php-cgi #!/bin/bash exec /etc/php-5.6.22/bin/php-cgi #!/bin/bash exec /etc/php-5.6.22/bin/php-cgi 更新: 运行Docker容器时会出现此结果。 如果我将脚本简化为只包含以上部分(删除不相关的代码部分),然后在主机操作系统和Docker中正确工作。 但问题仍然没有解决。 完整版本的脚本文件是这样的: #!/bin/bash source $(dirname […]

在docker容器中安装openssh-server,g ++,gdb和gdbserver Visual C ++ for Linux Development + Docker

我想在Docker容器中安装Visual C ++ for Linux Development的依赖关系,即openssh-server , g++ , gdb和gdbserver 。 我运行一个基于Ubuntu镜像的docker容器我已经尝试过ubuntu:14.04 , ubuntu:12.04和ubuntu:latest 。 我以交互模式运行容器并使用bash尝试安装依赖项。 上面链接的Visual C ++ for Linux页面表明依赖关系可以安装在… sudo apt-get install openssh-server g++ gdb gdbserver 不过,我安装时遇到了问题。 例如,当我尝试安装gdb我得到一个错误,指出该包无法find… root@f6de8c642ffa:/# apt-get install gdb Reading package lists… Done Building dependency tree Reading state information… Done E: Unable to locate package gdb 我也尝试用sudo加前缀,没有运气。 我得到类似的错误的其他包,除了我相信安装的g ++。 我假设这些用于C […]

试图在Docker中运行Cloudera镜像

我试图在一个大学项目的docker镜像中运行cloudera / clusterdock。 这是我第一次使用docker工具,到目前为止,我一直在使用cloudera网站上的说明,这是有点稀疏。 我成功下载了docker和cloudera图像,当我运行docker docker-images命令时,我得到以下内容: REPOSITORY TAG IMAGE ID CREATED SIZE cloudera/clusterdock latest 9b4d4f1dda22 7 days ago 467.5 MB 当我尝试运行这个图像的容器。 使用以下命令 docker run cloudera/clusterdock:latest /bin/bash 我收到以下消息 File "/bin/bash", line 1 SyntaxError: Non-ASCII character '\x80' in file /bin/bash on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details 阅读pep提到pep我知道我需要更改文件中的编码,但是pep专注于python文件,我不知道有一个python文件,所以不知道在哪里可以find它来纠正它。 此外,知识有限,我不能改变bin / bash文件,因为我知道它会影响你的机器。 任何帮助将不得不假设,因为我几乎没有经验,所以我对这一点知之甚less。

从AWS CLI启动EC2实例时,未执行用户数据脚本

我正在尝试使用AWS CLI从我已经安装了Docker的映像启动EC2实例,然后为该实例提供一个由–user-data传入的脚本,以便从Docker集线器中提取映像并运行那个形象。 我的AWS CLI命令启动实例,但看起来传递给–user-data的脚本从不运行。 CLI命令是: aws ec2 run-instances –image-id ami-xxxxx –count 1 –instance-type t2.micro –key-name xxxxx –security-groups xxxxxxx –user-data file:///Users/xxxxxx/startlb.sh 和startlb.sh的内容: #!/bin/bash docker pull xxxxxx && docker run -p 9000:9000 -p 9090:9090 -d xxxxxxx go run lbserver.go > /home/ec2-user/startup.log 我将docker命令的输出redirect到startup.log,以查看是否有标准输出。 当我login到实例时,日志文件没有被创build,导致我相信user-data脚本从不运行。 docker images和docker ps都显示实例上没有图像或容器。 该命令成功启动实例,而不需要拖动和运行docker容器(默认情况下,Docker在实例上运行,因此不需要启动它)。 如果我将脚本的内容粘贴到terminal中并执行,就会启动实例,然后拉动容器并运行它,所以脚本没有出现任何问题。