我正在部署几个不同的docker容器,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
我正在为我的应用程序自动设置dev环境,当我从命令行手动运行这两个命令时,我必须在运行第一个命令之后等待大约10秒来运行第二个命令。
# command one (run the mysql docker container)
docker run -p 3306:3306 --name mysql-container-name -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=mydbname -d mysql:latest
# command two (import data into created db)
docker exec -i m
我这样通过bash中的不同用户调用bash,并且我想在用户进入"exit“之前一直使用"*”。
# bash B
su test<<endOfTestOperation
./bashA.sh
endOfTestOperation
# bash A
# Start a process &
read LINE <------ I want to wait here until user inputs "exit"
if [ "$LINE" == "exit" ]; then
#
我有一个单独的shell脚本,如果我传递-d或--detach参数,它将以附加模式运行我的docker环境,或者分离。当我传递这个参数(./run-env.sh -d)时,它工作得很好,但是当我在没有任何选项的情况下运行我的脚本时( ./run-env,只是获得空白的输出和停靠器-组合不运行),哪里会出现问题呢?
#!/usr/bin/env bash
for arg in "$@"; do
if [ "$arg" = '-d' ] || [ "$arg" = '--detach' ]
the
我正在创建一个码头映像,我想在其中挂载我的主目录。但是,还有一些其他的bashrc文件我想在实例化时运行。
问题是,我不能将这个bashrc文件复制到我的用户的工作目录中,因为我将在那里挂载我的(主机)主目录。因此,我尝试将其附加到/etc/bashrc或插入/etc/profile.d,但它从未运行。
我的dockerfile看起来如下:
FROM centos:7
RUN adduser -s /bin/bash user -G users
RUN echo "echo /etc/bashrc" >> /etc/bashrc
RUN echo "ech
我有一个简单的Python脚本,它创建一个Docker容器,然后创建一个TCP隧道将请求转发给它。我在Python中使用套接字来转发在客户端和Docker容器之间发送的数据。 我的一段代码不起作用: # open socket to container
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.connect((socket.gethostbyname('container IP - e.g. 172.17.0.2'), 2222)) 我也尝试了这部分代码:socket.connect(
在gitlab-ci中,我尝试在Docker容器中运行docker-compose。为此,我使用Docker-in-Docker。要测试一切是否正常,我只需执行一个docker info命令。但是,当我使用docker-compose图像作为我的图像时,我在执行docker info时得到以下错误 ERROR: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running? 如果我使用docker本身作为镜像,则docker info命令成功。我对此感到困惑,因为docker-co
我有一个bash脚本:
#!/bin/bash
docker-compose up -d
# wait for the database to come up
until mysqlshow --user=root -h localhost -P 3306 --protocol=tcp > /dev/null 2>&1; do
echo "Waiting for mysql container..."
sleep 0.5
done
RESULT=`mysqlshow --user=root -h localhost -P 3306
我正在使用一个启动脚本运行一个EC2实例,该脚本在重新启动时被调用。此启动脚本检查停靠守护进程在启动容器之前是否正在运行,但错误:Post http:///var/run/docker.sock/v1.13/containers/create: dial unix /var/run/docker.sock: no such file or directory失败。
启动脚本
# Make sure the docker daemon has started
sudo /usr/sbin/service docker start
# start the container
sudo /usr/
我刚刚开始使用Docker,我非常喜欢它,但是我有一个笨重的工作流,我想简化它。当我在我的Dockerfile脚本上迭代时,我通常会在构建之后通过启动bash会话、运行一些命令、发现这样和这样的包没有正确安装,然后返回并调整我的Dockerfile来测试。
假设我已经建立了自己的形象并将其标记为buildfoo,我会这样运行它:
$> docker run -t -i buildfoo
... enter some bash commands.. then ^D to exit
然后我会有一个集装箱运行,我必须清理。通常我只会像这样核爆所
我目前正在构建一个定制的码头形象,用于集成测试。我的要求是使用带有默认ingester管道和模板映射的自定义配置来设置它。
Dockerfile:
FROM docker.elastic.co/elasticsearch/elasticsearch:5.6.2
ADD config /usr/share/elasticsearch/config/
USER root
RUN chown -R elasticsearch:elasticsearch config
RUN chmod +x config/setup.sh
USER elasticsearch
RUN elasticsearch-p