如何使用dockerfile创建Docker容器
本文是关于我们如何使用dockerfile创建Docker容器的信息。
因此,这是一个简短的介绍,真正是容器和Docker文件。
一旦我们从镜像启动Docker中的进程,Docker就获取了镜像及其父镜像,并重复该过程,直到它到达基础镜像。
然后,Union文件系统在顶部添加读写图层。
该读写层,有关其父镜像的信息和与其唯一ID,网络配置和资源限制的一些其他信息称为容器。
容器具有各种状态,因为它们可以从运行到退出状态。
具有状态的容器包括在CPU上运行的进程树,从中运行的另一个进程孤立,退出的是文件系统的状态,并保留其退出值。
我们可以启动,停止和重新启动一个容器。
dockerfile是一个脚本/文本文件,由依次列出的各种命令和参数组成,以便在基本镜像上自动执行操作以创建新的命令。
它帮助我们避免在运行容器时每次发出命令。
它们用于通过简化从开始完成的过程来组织事物并大大帮助部署。
它开始定义构建过程从中启动的镜像,并提供具有所需命令和参数的新镜像,该参数将用于创建Docker容器。
因此,以下是我们如何使用Dockerfile创建Docker容器的快速简便的步骤。
1. Docker命令
因此,在我们开始创建我们的Dockerfile之前,我们需要了解创建工作Dockerfile的必要命令。
有几十个命令可用于创建它,但我们会快速了解这些命令。
add
add命令用于将文件从源目录复制到目标,源也可以是一个URL。
如果它是一个URL,该命令将简单地将目标下载到目标目录。
cmd
CMD命令用于执行使用基于镜像创建容器执行的特定命令。
它与运行命令非常相似,而在构建期间不会执行CMD。
ENTRYPOINT
EntryPoint参数设置每次使用镜像创建容器时使用的具体默认应用程序。
env
env用于设置环境变量。
可以使用Docker容器访问这些变量,为运行程序提供大量的灵活性。
from
来自参数定义用于启动构建过程的基础镜像,该过程可以是任何Docker镜像是否在主机上或者存储库中。
Workdir
WorkDir指令用于设置要执行使用CMD定义的命令的位置。
run
RUN是用于构建Docker镜像的命令,该ocker镜像是Dockerfiles的集中执行指令。
MAINTAINER
MAINTAINER是无法执行的命令,但声明作者,因此设置镜像的作者字段。
USER
用户指令用于设置基于正在构建的镜像的UID(或者用户名),该UID(或者用户名)是运行容器。
VOLUME
Volume命令用于使从容器访问到主机上的目录。
EXPOSE
公开命令用于将指定的端口关联,以在容器和主机内的运行进程之间启用网络。
2.创建一个dockerfile
在我们了解到建立所需容器的必要命令之后,我们终于让我们的手脏了,创建了一个Dockerfile来完成我们的工作。
其中我们将创建一个dockerfile以创建镜像以安装nginx web服务器容器。
为此,我们需要使用我们喜欢的文本编辑器创建名为dockerfile的文件。
$sudo nano Dockerfile
然后,我们希望添加我们的Docker配置,该配置包括nginx Web服务器容器的命令和参数。
# Pull base image. FROM dockerfile/ubuntu # Install Nginx. RUN \ add-apt-repository -y ppa:nginx/stable && \ apt-get update && \ apt-get install -y nginx && \ rm -rf /var/lib/apt/lists/* && \ echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \ chown -R www-data:www-data /var/lib/nginx # Define mountable directories. VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx", "/var/www/html"] # Define working directory. WORKDIR /etc/nginx # Define default command. CMD ["nginx"] # Expose ports. EXPOSE 80 EXPOSE 443
使用上述命令获取文件后,我们希望保存文件并退出运行该Dockerfile。
3.使用dockerfile构建镜像
现在,在我们完成为NGINX Web服务器容器的Dockerfile创建我们的Dockerfile之后,我们现在最终将使用该DockerFile构建镜像。
要构建镜像,我们需要在我们的工作基础目录中运行以下命令。
# sudo docker build -t my_nginx .
上面的命令将使用创建的dockerfile构建名为my_nginx的镜像。
4.创建Docker容器
使用我们刚刚构建的镜像,我们现在将使用我们选择的名称来继续创建运行nginx Web服务器实例的容器的最终步骤。
这里是my_nginx_instance。
# docker run --name my_nginx_instance -p 80:80 -d my_nginx
最后,我们已经创建了Nginx容器,并转发到端口80.现在检查其是否正常运行,我们可以运行Docker PS。
# docker ps