相关疑难解决方法(0)

在Dockerfile中使用WORKDIR命令有什么意义

我正在学习Docker.很多次,我看到它DockerfileWORKDIR命令

FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
CMD [ “npm”, “start” ] 
Run Code Online (Sandbox Code Playgroud)

我不能省略WORKDIR,Copy只是让我Dockerfile的项目根源?使用这种方法的缺点是什么?

docker dockerfile

66
推荐指数
5
解决办法
6万
查看次数

在Docker中启动完整容器?

根据这个github问题,应该可以用Docker 0.6或更高版本的Upstart,cron等启动一个完整的容器,但是我该怎么做?

我当时正在等待

docker run -t -i ubuntu /sbin/init
Run Code Online (Sandbox Code Playgroud)

会工作就像

lxc-start -n ubuntu /sbin/init
Run Code Online (Sandbox Code Playgroud)

我会得到一个登录屏幕,但它没有显示任何内容.我也尝试使用ssh访问它,但没有运气.我正在使用Docker索引中的默认ubuntu映像.

lxc docker linux-containers

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

Docker exec与nsenter:任何陷阱?

在过去的几个月里,我一直在使用nsenter来在容器上运行shell以进行调试.我听说并使用了版本1.3中引入的docker exec.Docker exec 似乎是为了进行调试而进入容器的新的最佳实践,但我想知道使用docker exec和nsenter是否有任何缺点.比较两者的信息很少.使用docker exec与nsenter 时,我应该注意或避免哪些具体问题?

docker nsenter

8
推荐指数
2
解决办法
4212
查看次数

Apache与Docker Alpine Linux

我想用alpine和apache创建一个docker图像.我使用tini作为"init"系统.它工作,直到我分离并重新连接到容器.连接到容器后,apache退出并且容器停止.我不知道问题是什么.有没有人与docker,alpine和apache有类似的问题?

我的Dockerfile看起来像这样(之前,我使用Alpines包管理器进行tini)

FROM alpine
ENV TINI_VERSION v0.16.1
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static /sbin/tini
RUN chmod +x /sbin/tini
RUN apk add --no-cache apache2 \
   && mkdir -p /run/apache2 \
   && ln -sf /dev/stdout /var/log/apache2/access.log \
   && ln -sf /dev/stderr /var/log/apache2/error.log
EXPOSE 80
ENTRYPOINT ["/sbin/tini", "-vvv", "-g", "--"]
CMD ["/usr/sbin/httpd", "-f", "/etc/apache2/httpd.conf", "-DFOREGROUND"]
Run Code Online (Sandbox Code Playgroud)

输入和输出到docker cli:

~/Desktop/docker_test@laptop-sebi
$ docker run -itd test1
a793bad5d4350f58893909f1552c9f2978d8e2952960ac667f8dcb2bf7a3516e

~/Desktop/docker_test@laptop-sebi
$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             
STATUS              PORTS               NAMES
a793bad5d435        test1               "/sbin/tini -vvv -..."   12 seconds 
ago …
Run Code Online (Sandbox Code Playgroud)

apache init docker dockerfile

6
推荐指数
1
解决办法
2643
查看次数

Docker刚刚启动后就退出了

所以在开始这个问题之前,我是对码头工作者的理解.

  1. Docker有3个组件
  2. 图片
  3. 集装箱
  4. Dockerfile

现在Images是创建容器的映像,Dockerfile就像流程一样.简单来说,图像是类,容器是图像的对象.

现在,我不想采用Dockerfile您在创建容器时指定要执行的步骤的方法.

我想通过Linux安装一些基本实体,如MongoDb,Redis等,并在我们的服务器上运行.

所以我开始这样:

  1. 我从Docker Hub下载了Ubuntu映像,通过docker pull ubuntu 它返回了我18261df960118..7a16(big hex key)

  2. 现在我必须为这个图像创建一个容器,以实现我所做的:

    docker create -h abc.com --name abc.com 18261df960118..7a16

它返回了我的容器ID.

  1. 为了进入容器,我必须首先启动它然后连接到它,所以这里是命令所docker start containerId遵循的docker attach containerId.

但每次它说:

您无法附加到已停止的容器,请先启动它.

请帮助我做错的地方,对于很多人来说这可能是一个新手的问​​题,但是我被困在这里,请不要为此做出请求.

提前致谢.

docker dockerfile

3
推荐指数
1
解决办法
1105
查看次数

标签 统计

docker ×5

dockerfile ×3

apache ×1

init ×1

linux-containers ×1

lxc ×1

nsenter ×1