标签: dockerfile

这个docker文件的解释?

我想了解这个docker 文件

FROM ubuntu:trusty
MAINTAINER Wurstmeister 
RUN apt-get update; apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64/
RUN echo 'root:wurstmeister' | chpasswd
RUN mkdir /var/run/sshd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config

EXPOSE 22
Run Code Online (Sandbox Code Playgroud)

我理解大部分线路,但我不明白这些线条的含义是什么?

apt-get install -y unzip openjdk-7-jre-headless wget supervisor docker.io openssh-server
echo 'root:wurstmeister' | chpasswd
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)

谁能帮我理解?我不确定wget supervisor docker.io openssh-server那条线的目的是什么.那回声意味着什么呢?然后也是最后的sed线.

linux ubuntu docker dockerfile

0
推荐指数
1
解决办法
70
查看次数

Docker中的端口映射

我为一个示例python金字塔应用程序创建了一个docker.我的dockerfile是这样的:

FROM ubuntu:16.04

RUN apt-get update -y && \
    apt-get install -y python-pip python-dev curl && \
    pip install --upgrade pip setuptools

WORKDIR /app

COPY . /app

EXPOSE 6543

RUN pip install -e .

ENTRYPOINT [ "pserve" ]

CMD [ "development.ini" ]
Run Code Online (Sandbox Code Playgroud)

我的构建命令是这样的:

docker build -t pyramid_app:latest .
Run Code Online (Sandbox Code Playgroud)

我的运行命令是这样的:

docker run -d -p 6543:6543 pyramid_app
Run Code Online (Sandbox Code Playgroud)

当我尝试访问http:// localhost:6543时出现错误

Failed to load resource: net::ERR_SOCKET_NOT_CONNECTED
Run Code Online (Sandbox Code Playgroud)

当我在机器内卷曲时,它工作正常.

如果有人可以帮我弄清楚为什么我的端口映射不起作用会很棒.

谢谢.

python python-3.x pyramid docker dockerfile

0
推荐指数
1
解决办法
413
查看次数

使用dockerfile克隆使用https的bit-bucket repo.如何传递密码?

我有一个dockerfile.我必须使用https url从bitbucket克隆存储库,但我想如何传递密码以使克隆完成? 是的,我尝试了ssh.它工作,但我需要https克隆的一些shell脚本运行,以便它应自动接受密码.

这是我的docker命令克隆repo:

运行git clone https://username@bitbucket.org/abc/xyz.git

这是我在buildind docker文件中得到的错误:\

克隆到'newfolder'...致命:无法读取' https://username@bitbucket.org '的密码:没有这样的设备或地址

我的构建命令是:

sudo docker build --no-cache = true -t image:build.

git github git-clone docker dockerfile

0
推荐指数
1
解决办法
2118
查看次数

dockerfile上一次构建的COPY失败

我根据docker docs在我的dokcerfile中使用了多阶段构建:

FROM node:8 as build
WORKDIR /usr/src/app
COPY package.json yarn.lock ./
RUN yarn
COPY . ./
RUN REACT_APP_BACKEND_BASE_URL=http://localhost:8010 yarn build

FROM mhart/alpine-node:8
RUN yarn global add serve
WORKDIR /app
COPY —-from=build /usr/src/app/build .
#COPY ./build .
CMD serve -p 80 -s .
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

Step 8/9 : COPY —-from=build /usr/src/app .
COPY failed: stat /var/lib/docker/tmp/docker-builder527544225/—-from=build: no such file or directory
Run Code Online (Sandbox Code Playgroud)

我也尝试了索引而不是名称: COPY —-from=0但仍然是相同的结果.

如果我跳过第一次构建,我手动踢纱线构建并将构建结果复制到单个容器中

#COPY ./build .
Run Code Online (Sandbox Code Playgroud)

它工作得很好......

Docker version
Client:
 Version:      17.09.1-ce
 API version:  1.32
 Go …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-build

0
推荐指数
1
解决办法
1558
查看次数

在docker容器中运行时,nodejs app不会连接到localhost

My environment:
Ubunut 17.04 LTS
npm --version: 5.6.0
nodejs --version: 4.7.2
angular cli version: 1.6.4
Run Code Online (Sandbox Code Playgroud)

docker-compose文件:

version: '3'

services:
 my-app:
    build:
      context: .
      dockerfile: Dockerfile
    restart: unless-stopped
    volumes:
      - .:/usr/src/app
    ports:
      - "4200:4200"
Run Code Online (Sandbox Code Playgroud)

我在dockerfile中注释掉了EXPOSE 4200,因为我已经从docker-compose.yml文件中安装了它,是不是没问题,我应该在dockerfile中公开并在docker-compose中挂载?

在命令行上运行npm start会在浏览器上成功启动应用程序,因为我可以去localhost:4200看看应用程序是否正在运行.

但是,如果我使用docker构建我的应用程序并运行docker-compose,我看到nodejs服务器仍在运行localhost:4200,但是,我无法访问该应用程序,因此localhost:4200无法启动该页面.

运行APP手动工作很棒,我可以在浏览器上看到它:

ubuntu17@ubuntu17:~/playground/apps/myapp-ui$ ng serve
** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
Date: 2018-01-16T16:22:51.912Z                                                          
Hash: 40ac2bd0588ee2136d15
Time: 13963ms
chunk {inline} inline.bundle.js (inline) 5.79 kB [entry] [rendered]
chunk {main} main.bundle.js …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose docker-swarm docker-machine

0
推荐指数
1
解决办法
2473
查看次数

Docker PHP-APACHE容器全局设置ServerName指令

当我尝试在docker上运行我的php:apache容器时,我得到这个警告,请知道如何解决这个问题.

AH00558:apache2:无法
使用172.17.0.2 可靠地确定服务器的完全限定域名.全局设置'ServerName'指令以禁止此消息AH00558:apache2:无法使用172.17.0.2可靠地确定服务器的完全限定域名.全局设置'ServerName'指令以禁止显示此消息[Mon Feb 19 14:18:21.041074 2018] [mpm_prefork:notice] [pid 1] AH00163:Apache/2.4.10(Debian)PHP/7.0.27已配置 - 恢复正常运算[Mon Feb 19 14:18:21.041534 2018] [核心:通知] [pid 1] AH00094:命令行:'apache2 -D FOREGROUND'

DOCKERFILE:

FROM php:7.0-apache
COPY . /var/www/html/
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)

php apache docker dockerfile

0
推荐指数
2
解决办法
2万
查看次数

公开docker container ports无法正常工作

我将端口从docker容器暴露给我的服务器时遇到问题.这就是我所做的:

我写了一个非常简单的弹簧启动应用程序,它运行在端口8080上.
现在我试图将它部署到我的服务器上的docker容器中.基于Spring - Docker用户指南入门我创建了以下Dockerfile:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Run Code Online (Sandbox Code Playgroud)

在第二步中,我将jar复制到同一目录(存储dockerfile的位置),并使用以下命令构建容器:

docker build . -t testportmapping --build-arg JAR_FILE=swagger-v2-person-ws-0.0.1-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

现在我跑的时候:

docker run -d testportmapping:latest -p 9065:8080
Run Code Online (Sandbox Code Playgroud)

该命令运行没有错误.但是,如果我看一下docker container ls:我发现没有创建端口映射:

CONTAINER ID        IMAGE                    COMMAND                  CREATED               STATUS              PORTS                 NAMES
f15639c81903        testportmapping:latest   "java -Djava.securit…"   About 6 minutes ago   Up 6 minutes                              mystifying_payne
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了吗?

到目前为止我尝试过的:

  1. 使用不同的本地端口
  2. 将EXPOSE添加到Dockerfile
  3. 添加--net=hostdocker run命令
  4. 运行附加的容器以查看应用程序是否正确启动(确实如此)

我的设置:

root@jupiter /h/n/d/p/swagger-v2# docker version
Client:
 Version:           18.06.1-ce
 API …
Run Code Online (Sandbox Code Playgroud)

port docker spring-boot dockerfile

0
推荐指数
1
解决办法
1193
查看次数

在Dockerfile中提取gz

我有一个目录结构如下.

- app
  Dockerfile
   - target
     - test_app.tar.gz
Run Code Online (Sandbox Code Playgroud)

tar.gz的提取将具有以下内容,

- lib
- conf
- bin
Run Code Online (Sandbox Code Playgroud)

我想提取并添加lib/*文件夹到docker镜像.

FROM docker.hub.com/alpine/jdk1.8:latest  

RUN mkdir -p /service \
            /service/app_lib \
            /service/lib

COPY target/test_app.tar.gz /service/app_lib/
RUN cd  /service/app_lib/ 
RUN tar -xzf test_app.tar.gz
RUN rm test_app.tar.gz
RUN cd lib
COPY * /service/lib/
RUN rm app_lib
Run Code Online (Sandbox Code Playgroud)

得到以下错误.

Step 5/11 : RUN tar -xzf test_app.tar.gz
 ---> Running in edde27a1cc60
tar (child): test_app.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

0
推荐指数
2
解决办法
9122
查看次数

如何使用"&"创建Dockerfile到RUN命令?

我在Dockerfile中有以下命令.每当我创建一个新图像时执行.问题是这个命令失败了,因为我有一个&in Xvfb :99 &.围绕它的好方法是什么?添加引号没有帮助.

RUN set -ex \
&& apt-get update -yqq \
&& apt-get upgrade -yqq \
&& apt-get install -yqq --no-install-recommends \
    python3-pip \
    python3-requests \
    software-properties-common \
    python-software-properties \
    xvfb \
&& Xvfb :99 & \
&& export DISPLAY=:99 
Run Code Online (Sandbox Code Playgroud)

这是确切的错误: /bin/sh: 1: Syntax error: "&&" unexpected

docker dockerfile

0
推荐指数
1
解决办法
1056
查看次数

您如何对WebSocket服务器进行docker化?

我在将WebSocket服务器放入Docker容器时遇到麻烦。

这是服务器代码,它使用“ connected”写入新连接。

// server.go
func RootHandler(w http.ResponseWriter, r *http.Request) {
    upgrader := websocket.Upgrader{ // (Uses gorilla/websocket)
        ReadBufferSize:  4096,
        WriteBufferSize: 4096,
    }

    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        panic(err)
    }

    if err = conn.WriteMessage(websocket.TextMessage, []byte("connected")); err != nil {
        panic(err)
    }
}

func main() {
    fmt.Println("server is running")

    // For graceful shutdown
    stop := make(chan os.Signal, 1)
    signal.Notify(stop, os.Interrupt)

    server := http.Server{Addr: "localhost:8000"}
    defer server.Close()

    http.HandleFunc("/", RootHandler)

    go func() {
        err := server.ListenAndServe()
        if err …
Run Code Online (Sandbox Code Playgroud)

go websocket docker dockerfile

0
推荐指数
1
解决办法
1864
查看次数