docker实战总结-基础篇

2017-11-07  本文已影响0人  笔_尖

最近由于工作上又用到了Docker,所以在此重新整理了下整体Docker的入门基础知识

Docker install

ubuntu下的安装方式为例:

sudo apt-get update

sudo apt-get install docker.io

sudo gpasswd -a ${USER} docker

service docker status

Docker image

docker images

docker pull ${image name}:${version} 不写版本默认是latest
如:docker pull ubuntu 或者 docker pull ubuntu:16.04

docker save -o [file path/filename] [image name]

docker load > [file path/filename]

Docker container

docker ps

docker run [Options] -it ${image name} [command] [args...]

  • Options:增加的一些额外参数,可不要,如 docker run -it ubuntu /bin/bash
-p:容器端口与宿主主机的端口映射关系,后面的是容器的端口,如docker run -p 10.23.1.198:18888:18888 -it achain-wallet /bin/bash
-d:是否以后台进程的方式运行该容器
-v:挂在宿主主机的目录到对应的容器目录中,注意只能是绝对路径的,如 docker run -v /home/yujian:/data/soft -it /bin/bash

Dockerfile

Dockerfile命令

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

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

用来指定端口,使容器内的应用可以通过端口和外界交互
EXPOSE [port] 多个之间以空格隔开
如:EXPOSE 8080

配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖.每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效.ENTRYPOINT 帮助你配置一个容器使之可执行化,如果你结合CMD命令和ENTRYPOINT命令,你可以从CMD命令中移除“application”而仅仅保留参数,参数将传递给ENTRYPOINT命令。
ENTRYPOINT application "argument", "argument", ..
如:# Remember: arguments are optional. They can be provided by CMD or during the creation of a container.
ENTRYPOINT echo
#Usage example with CMD:
#Arguments set with CMD can be overridden during run
#Arguments set with CMD can be overridden during run
CMD "Hello docker!"
ENTRYPOINT echo

RUN命令是Dockerfile执行命令的核心部分。它接受命令作为参数并用于创建镜像。不像CMD命令,RUN命令用于创建镜像(在之前commit的层之上形成新的层)。
RUN [command]
如:RUN apt-get install -y vim

FROM命令必须是Dockerfile的首个命令,用于指定使用哪个基础镜像作为构建流程,该基础镜像一般是要能从官方仓库中找得到的
FROM [image name]
如:FROM ubuntu

ENV命令用于设置环境变量。这些变量以”key=value”的形式存在,并可以在容器内被脚本或者程序调用
ENV key value
如:ENV SERVER_WORKS 4

VOLUME命令用于让你的容器访问宿主机上的目录
VOLUME ["/dir_1", "/dir_2" ..]
如:VOLUME ["/my_files"]

WORKDIR命令用于设置CMD指明的命令的运行目录
WORKDIR /path
如:WORKDIR ~/

参考资料

Dockerfile介绍
解决国内用dockerfile生成镜像慢的问题

上一篇 下一篇

猜你喜欢

热点阅读