Tag: bash

重启命令后,如何从命令重启机器后继续执行bash脚本?

我正在开发一个bash脚本来安装和设置docker并运行一个应用程序。 该脚本需要重新启动系统,并应在重新启动后继续。 我是BASH新手,请帮助我解决这个问题。 谢谢,Ketan。

如果物理机器死了,Docker rm不会删除我的容器

我有一些容器在其存在期间在其文件系统中保存敏感信息。 我使用如下行创build这些容器: docker run -it –rm someImage bash 每当我退出bash,我的容器就会随着所有敏感文件一起消失,这正是我想要的。 如果我使用Docker容器,那么我不需要记住删除这些文件。 这个解决scheme比把文件放在/ tmp中还好,因为在我停止使用它们之后,所有的文件都被删除了。 问题是当我的物理机器由于某种原因死亡。 例如,如果我在电力电缆上旅行。 发生这种情况时,我的容器进入停止状态,其他人可以使用重新启动容器 docker start myContainerId 有没有什么办法来改进我创build我的容器来实现我想要的方式? 一种方法是在启动时将东西放在主机的SystemV上以清除这些容器,但是我想知道Docker是否没有更好的方法来处理这个问题。

我怎样才能改变docker的ID和名称

我使用jenkins来构builddocker容器并将完成的映像发送到AWS S3存储桶。 我试图从Github上获取一个文件到docker镜像上,然后把它打包成一个docker镜像。 目前我有jenkins完成git拉和build立容器,但我不能把它复制到容器的文件。 我得到这个错误: Building in workspace /var/lib/jenkins/jobs/copy-to-docker/workspace [workspace] $ /bin/sh -xe /tmp/hudson5108979322433439821.sh + docker cp /var/lib/jenkins/jobs/Move git pull files to docker/workspace/html/:index.html + :/var/lib/docker/containers /tmp/hudson5108979322433439821.sh: 2: /tmp/hudson5108979322433439821.sh: :/var/lib/docker/containers: not found docker: "cp" requires 2 arguments. See 'docker cp –help'. Usage: docker cp [OPTIONS] CONTAINER:PATH LOCALPATH|- docker cp [OPTIONS] LOCALPATH|- CONTAINER:PATH Copy files/folders between a […]

Ubuntu在前台运行服务

我已经为ddclient做了一个(docker)容器。 问题是,我在前台运行该服务时遇到问题,因此docker容器仍在运行。 我已经设法通过在脚本的末尾添加一个bash运行Docker,但是这是一个骇人的问题,因为实际的过程应该是ddclient。 另一种方法是find日志文件,但如果服务停止,容器将继续运行而不是停止。 问:那么有什么(简单的)方法来保持服​​务在前台运行?

无法连接到mysql docker容器

我有一个Dockerfile,我正在处理MySQL 5.6并进行configuration(主要是使用bash和sql脚本)。 我能够构build和运行它,但是当我尝试连接到容器中的数据库时,我总是得到: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 我曾尝试访问MySQL数据库通过使用: mysql -u root -p mysql -u root -h 127.0.0.1 -p 我尝试了所有我能想到的东西,并在互联网上查阅文章,但没有任何工作。 有人能告诉我为什么吗? 这是我的Dockerfile和bash脚本分别: FROM mysql:5.6 MAINTAINER Ryan K. USER root ADD mysqlAddUser.sh /tmp/ CMD ["/tmp/mysqlAddUser.sh"] ADD foo.sql /docker-entrypoint-initdb.d/foo.sql EXPOSE 3306 ## Starting mysqld and running Database Scripts CMD […]

整个系统映像的轻量级版本控制有哪些解决scheme?

假设您正在构build一个安全关键型软件设备,以在像NVIDIA Jetson TK1这样的强大embedded式系统上运行。 主要的应用程序将在Linux中运行,并使用Gi​​t进行pipe理。 但是,您还希望对整个系统状态进行严格控制 – 更改networking设置,启动,共享库等。另外,您希望能够在运行不同操作系统的台式计算机上针对此系统映像进行开发。 有一个默认的系统映像将被闪存到主板上。 您可以进行更改,保存整个图像,然后重新闪光,但这可能需要30分钟以上。 不是一个好的工作stream程 你可以编写一个bash脚本,伸手进入周围的文件系统,并在安装过程中进行必要的更改,然后在Git中控制该脚本。 但是,由于这是必要的,所以这可能是一种有点脆弱和艰苦的做事方式。 为了certificate它的工作原理,您必须将系统恢复到其假定的默认状态,然后重新安装。 如果系统秘密地与假设的状态有一些不同,那么安装可能会失败。 你可以虚拟化环境(这是否存在这个硬件呢?)。 这是否会让难以利用板卡专用硬件(如Jetson的GPU)? 有没有更好的,更具说明性的方法来解决这个问题? 有没有一个系统可以让我按系统设置的方式按“保存”,提交,然后将其拖到另一个平台上,而不用等待30分钟的闪存?

是否有可能从psql内导入OSM数据?

我正在使用Dockerfile的这个Bash脚本: #!/bin/bash set -e gosu postgres postgres –single -jE <<-EOL CREATE USER "$OSM_USER"; EOL gosu postgres postgres –single -jE <<-EOL CREATE DATABASE "$OSM_DB"; EOL gosu postgres postgres –single -jE <<-EOL GRANT ALL ON DATABASE "$OSM_DB" TO "$OSM_USER"; EOL # Postgis extension cannot be created in single user mode. # So we will do it the […]

使用RUN命令在docker中执行shell脚本

新来的docker工人,请耐心等待。 我的Dockerfile包含一个入口点: ENV MONGOD_START "mongod –fork –logpath /var/log/mongodb.log –logappend –smallfiles" ENTRYPOINT ["/bin/sh", "-c", "$MONGOD_START"] 我有一个shell脚本通过python脚本添加一个条目到数据库,并启动服务器。 脚本startApp.sh chmod +x /addAddress.py python /addAddress.py $1 cd /myapp/webapp grunt serve –force 现在,所有下面的RUN命令在执行这个脚本时都是不成功的。 sudo docker run -it –privileged myApp -C /bin/bash && /myApp/webapp/startApp.sh loc sudo docker run -it –privileged myApp /myApp/webapp/startApp.sh loc 容器的docker日志是 "about to fork child process, waiting until […]

在Docker容器中,php(unit)不显示错误输出

我认识到这可能是一个PHP的configuration问题,而不是docker或phpunit,但我想清楚不同的移动件。 我有一个docker容器与下面的Dockerfile FROM php:5.6-cli COPY . /spider WORKDIR /spider RUN pecl install xdebug RUN docker-php-ext-enable xdebug RUN curl -sS https://getcomposer.org/installer | php — –install-dir=/usr/bin/ –filename=composer 当我使用( docker run -it my_php bash ) docker run -it my_php bash bash的容器时,我可以validationphp和xdebug是否正确安装。 当我尝试运行vendor/bin/phpunit ,testing开始,遇到一个错误,然后进程简单地死亡,没有错误输出。 失败的testing显示失败并通过testing显示绿色。 以下为什么phpunit不能在控制台中显示任何错误 ,我已经添加了 ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL); ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); 到testingbootstrap.php文件中 <ini name="display_errors" […]

随机标签应用于每个git提交

背景: Docker Hub允许通过指向Github并在任何地方构build图像来自动构build图像, 提交到一个特定的分支名称 提交使用特定的标签名称 Docker Hub也不允许使用相同标签对图像进行版本控制,也就是说,如果图像是使用tag :version_1构build的,之后使用:version_1构build另一个图像,则原始图像将被完全覆盖。 我希望能够有一个图像的历史。 将autobuild指向特定的分支名称将意味着,在每次提交(和随后的图像构build)时,先前的图像将被覆盖。 因此,我不能利用#1来完成这个。 但也许,我可以利用提交标记! 欲望: 如果我自动生成一个随机标签,并将其应用于git commit,我可能会有一个图像历史logging,其中每个提交都有自己的标签。 从一个特定的提交部署图像的过程,然后只需简单地find应用于该提交的随机标签。 我怎样才能申请一个随机标签(或者,更好的是,将提交的SHA作为标签应用于自己(也许不可能))我的提交? 我不反对bash脚本来解决这个问题。