我想了解这个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线.
我为一个示例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)
当我在机器内卷曲时,它工作正常.
如果有人可以帮我弄清楚为什么我的端口映射不起作用会很棒.
谢谢.
我有一个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.
我根据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) 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
当我尝试在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) 我将端口从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)
有谁知道我做错了吗?
--net=host到docker run命令root@jupiter /h/n/d/p/swagger-v2# docker version
Client:
Version: 18.06.1-ce
API …Run Code Online (Sandbox Code Playgroud) 我有一个目录结构如下.
- 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) 我在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
我在将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) docker ×10
dockerfile ×10
apache ×1
docker-build ×1
docker-swarm ×1
git ×1
git-clone ×1
github ×1
go ×1
linux ×1
php ×1
port ×1
pyramid ×1
python ×1
python-3.x ×1
spring-boot ×1
ubuntu ×1
websocket ×1