Dockerfile介绍及Docker常用命令

25 篇文章 0 订阅
8 篇文章 0 订阅

Dockerfile 命令

Dockerfile有十几条命令可用于构建镜像,下文将简略介绍这些命令。

ADD

ADD命令有两个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统。如果源是一个URL,那该URL的内容将被下载并复制到容器中。

  1. # Usage: ADD [source directory or URL] [destination directory]
  2. ADD /my_app_folder /my_app_folder 

CMD

和RUN命令相似,CMD可以用于执行特定的命令。和RUN不同的是,这些命令不是在镜像构建的过程中执行的,而是在用镜像构建容器后被调用。

  1. # Usage 1: CMD application "argument", "argument", ..
  2. CMD "echo" "Hello docker!"

ENTRYPOINT

配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。

每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。

ENTRYPOINT 帮助你配置一个容器使之可执行化,如果你结合CMD命令和ENTRYPOINT命令,你可以从CMD命令中移除“application”而仅仅保留参数,参数将传递给ENTRYPOINT命令。

  1. # Usage: ENTRYPOINT application "argument", "argument", ..
  2. # Remember: arguments are optional. They can be provided by CMD
  3. # or during the creation of a container.
  4. ENTRYPOINT echo
  5. # Usage example with CMD:
  6. # Arguments set with CMD can be overridden during *run*
  7. CMD "Hello docker!"
  8. ENTRYPOINT echo

ENV 

ENV命令用于设置环境变量。这些变量以”key=value”的形式存在,并可以在容器内被脚本或者程序调用。这个机制给在容器中运行应用带来了极大的便利。

  1. # Usage: ENV key value
  2. ENV SERVER_WORKS 4

 

EXPOSE

EXPOSE用来指定端口,使容器内的应用可以通过端口和外界交互。

  1. # Usage: EXPOSE [port]
  2. EXPOSE 8080

FROM

FROM命令可能是最重要的Dockerfile命令。改命令定义了使用哪个基础镜像启动构建流程。基础镜像可以为任意镜 像。如果基础镜像没有被发现,Docker将试图从Docker image index来查找该镜像。FROM命令必须是Dockerfile的首个命令。

  1. # Usage: FROM [image name]
  2. FROM ubuntu 

MAINTAINER

我建议这个命令放在Dockerfile的起始部分,虽然理论上它可以放置于Dockerfile的任意位置。这个命令用于声明作者,并应该放在FROM的后面。

  1. # Usage: MAINTAINER [name]
  2. MAINTAINER authors_name 

RUN

RUN命令是Dockerfile执行命令的核心部分。它接受命令作为参数并用于创建镜像。不像CMD命令,RUN命令用于创建镜像(在之前commit的层之上形成新的层)。

  1. # Usage: RUN [command]
  2. RUN aptitude install -y riak

USER

USER命令用于设置运行容器的UID。

  1. # Usage: USER [UID]
  2. USER 751

VOLUME

VOLUME命令用于让你的容器访问宿主机上的目录。

  1. # Usage: VOLUME ["/dir_1", "/dir_2" ..]
  2. VOLUME ["/my_files"]

WORKDIR

WORKDIR命令用于设置CMD指明的命令的运行目录。

  1. # Usage: WORKDIR /path
  2. WORKDIR ~/

如何使用Dockerfiles

使用Dockerfiles和手工使用Docker Daemon运行命令一样简单。脚本运行后输出为新的镜像ID。

  1. # Build an image using the Dockerfile at current location
  2. # Example: sudo docker build -t [name] .
  3. sudo docker build -t my_mongodb . 

 

SpringBoot模板Dockerfile

FROM openjdk:8-jdk-alpine

MAINTAINER chinoukin

VOLUME /tmp

ADD target/thyd-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Shell模板Dockerfile

FROM docker.io/anapsix/alpine-java 

MAINTAINER chinoukin

VOLUME /tmp
ENV dkuser=chinoukin
ENV PATH=$PATH:/bin

ADD test.sh app.sh

RUN /bin/sh -c "chmod u+x /app.sh"

ENTRYPOINT ["./app.sh"]
#ENTRYPOINT ["/bin/sh","/app.sh"]

 

Docker常用命令

docker build -t cyq/chydapp . 创建镜像,其中“.”代表dockerfile所在目录为当前目录

docker images

docker ispect cyq/chydapp 查看镜像元信息

docker ps

docker run -p 8080:8080 cyq/chydapp

docker run --entrypoint="ls" cyq/chydapp 覆盖dockerfile里的ENTRYPOINT

docker run --entrypoint="" cyq/chydapp java -version 运行镜像cyq/chydapp的容器里java -version命令,dockerfile里的ENTRYPOINT失效

docker exec -it b26b46503209 /bin/bash 进入到容器

docker stop b26b46503209 //关闭正在运行的容器

docker rm 9bce //删除容器

docker rmi 8c3b3f //删除镜像

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker 常用命令: • docker run:启动一个容器 • docker start:启动一个正在运行的容器 • docker stop:停止一个正在运行的容器 • docker build:构建一个镜像 • docker pull:从远程仓库拉取镜像 • docker push:将镜像推送到远程仓库Linux 常用命令: • ls:显示文件或目录的列表 • cd:切换当前目录 • cp:复制文件或目录 • mv:移动文件或目录 • rm:删除文件或目录 • chmod:更改文件或目录的权限 ### 回答2: Docker常用命令: 1. docker run:从镜像创建并启动一个容器。 2. docker ps:列出正在运行的容器。 3. docker stop:停止一个运行中的容器。 4. docker rm:删除一个已停止的容器。 5. docker images:列出本地的镜像。 6. docker pull:从远程仓库拉取镜像。 7. docker push:将本地的镜像推送到远程仓库。 8. docker exec:在运行中的容器中执行命令。 9. docker logs:查看容器的日志信息。 10. docker build:根据Dockerfile构建自定义镜像。 Linux常用命令: 1. ls:列出当前目录下的文件和文件夹。 2. cd:切换当前目录。 3. pwd:显示当前所在的目录。 4. mkdir:创建一个新的目录。 5. rm:删除文件或文件夹。 6. cp:复制文件或文件夹。 7. mv:移动文件或文件夹。 8. cat:显示文件的内容。 9. grep:根据关键字在文件中搜索。 10. chmod:修改文件或目录的权限。 这些命令都是在Linux系统中非常常用的,可以帮助用户进行文件管理、容器管理以及软件构建等操作。使用这些命令,用户可以更方便、高效地进行文件和容器的操作。 ### 回答3: docker常用命令: 1. docker ps:列出正在运行的容器。 2. docker images:列出本地的镜像。 3. docker run:运行一个容器。 4. docker stop:停止一个或多个容器。 5. docker rm:删除一个或多个容器。 6. docker start:启动一个停止状态的容器。 7. docker restart:重启一个容器。 8. docker build:根据Dockerfile创建一个镜像。 9. docker pull:从远程仓库下载一个镜像。 10. docker push:将一个镜像推送到远程仓库。 11. docker exec:在正在运行的容器中执行命令。 12. docker logs:查看容器的日志。 13. docker commit:将容器的修改保存为新的镜像。 14. docker network:管理容器的网络配置。 Linux常用命令: 1. ls:列出当前目录的文件和子目录。 2. cd:进入指定的目录。 3. pwd:显示当前所在的目录。 4. mkdir:创建一个新的目录。 5. rm:删除文件或目录。 6. cp:复制文件或目录。 7. mv:移动文件或目录。 8. cat:显示文件的内容。 9. grep:在文件中搜索指定的字符串。 10. chmod:修改文件或目录的权限。 11. chown:修改文件或目录的所有者。 12. chgrp:修改文件或目录的所属组。 13. find:在指定路径下查找文件。 14. tar:打包和压缩文件。 15. ping:测试网络连接。 16. ifconfig:查看和配置网络接口。 17. ssh:远程登录到另一台计算机。 18. top:查看系统的实时性能。 19. ps:显示系统中运行的进程。 20. kill:终止正在运行的进程。 以上是Docker常用命令和Linux常用命令的简要介绍。这些命令可以帮助用户管理容器、镜像和文件系统,执行系统操作和网络配置等任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值