iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >docker怎么手动构建新镜像
  • 305
分享到

docker怎么手动构建新镜像

2024-04-02 19:04:59 305人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“Docker怎么手动构建新镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么手动构建新镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

本文小编为大家详细介绍“Docker怎么手动构建新镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么手动构建新镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

查看本地现有镜像:

[root@docker ~]# docker images
repository     tag         image id      created       size
Nginx        latest       c59f17fe53b0    4 days aGo     108mb
ubuntu       latest       747cb2d60bbe    3 weeks ago     122mb
Centos       latest       196e0ce0c9fb    6 weeks ago     197mb

现在利用基础镜像centos,在此基础上手动构建一个WEB服务,这里采用nginx

启动一个container并进入到容器内:

[root@docker ~]# docker run -it --name=web centos /bin/bash
[root@bab3b6991467 /]#

然后在容器内进行安装nginx服务:

[root@bab3b6991467 /]# cd /usr/local/src/
[root@bab3b6991467 src]# yum install wget vim

这里采用编译安装nginx,所以下载nginx源码包,并安装好编译环境:

[root@bab3b6991467 src]# wget Http://nginx.org/download/nginx-1.12.2.tar.gz

编译环境:

[root@bab3b6991467 src]# yum install GCc gcc-c++ glibc make autoconf openssl openssl-devel

安装nginx的一些依赖包:

[root@bab3b6991467 src]# yum install libxslt-devel -y gd gd-devel geoip geoip-devel pcre pcre-devel

然后开支执行安装:

[root@bab3b6991467 src]# ll
total 960
-rw-r--r--. 1 root root 981687 oct 17 13:20 nginx-1.12.2.tar.gz
[root@bab3b6991467 src]# tar xf nginx-1.12.2.tar.gz 
[root@bab3b6991467 src]# cd nginx-1.12.2
[root@bab3b6991467 nginx-1.12.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module  --with-http_addition_module  --with-http_xslt_module  --with-http_image_filter_module  --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module  --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module  --with-http_secure_link_module  --with-http_degradation_module  --with-http_stub_status_module

创建需要用到的用户:

useradd -m -s /sbin/nologin nginx

继续编译:

make && make install
chown -r nginx:nginx /usr/local/nginx/

这里需要介绍nginx命令的一个参数:

[root@bab3b6991467 ~]# /usr/local/nginx/sbin/nginx -h 
  -g directives : set global directives out of configuration file

-g:为nginx的配置文件设置指令

现在退出container,回到host本机

[root@bab3b6991467 ~]# exit
exit

查看此时容器的状态:

[root@docker ~]# docker ps -a
container id    image        command       created       status           ports        names
bab3b6991467    centos       "/bin/bash"     37 minutes ago   exited (0) 21 seconds ago            web

利用docker diff查看该容器进行了哪些修改,由于输出太多,这里不给予显示了

利用docker commit将web容器进行加层成一个新镜像:

[root@docker ~]# docker commit --help
  usage: docker commit [options] container [repository[:tag]]
  create a new image from a container's changes

  -m, --message string  commit message
  -a, --author string  author (e.g., "john hannibal smith <hannibal@a-team.com>")

现在开始commit:

[root@docker ~]# docker commit -m "compile nginx on centos" web wadeson/centos_nginx:v1
sha256:210a202d37b8d2c31155c29adf0c7c0b49cfab7ff38234109919de7f4e76d1de

查看本地镜像:

[root@docker ~]# docker images
repository       tag         image id      created       size
wadeson/centos_nginx  v1         210a202d37b8    33 seconds ago   464mb
nginx         latest       c59f17fe53b0    4 days ago     108mb
ubuntu         latest       747cb2d60bbe    3 weeks ago     122mb
centos         latest       196e0ce0c9fb    6 weeks ago     197mb

docker怎么手动构建新镜像

可以看见刚刚docker commit的新镜像了,现在由此镜像进行启动一个container提供nginx服务:

[root@docker ~]# docker run -d -p80:80 wadeson/centos_nginx:v1 /usr/local/nginx/sbin/nginx -g "daemon off;"
c12669357e2b09a05a396ac480a04dd1956303b784f894b615d4edb889a737ab

然后查看container:

[root@docker ~]# docker ps -l
container id    image           command         created       status       ports        names
c12669357e2b    wadeson/centos_nginx:v1  "/usr/local/nginx/..."  41 seconds ago   up 40 seconds    0.0.0.0:80->80/tcp  thirsty_murdock

可以看见nginx服务已经开启了,于是进行访问:

docker怎么手动构建新镜像

 于是整个手动构建就成功了

针对上面的一些命令做下解释:

docker run -d -p80:80 wadeson/centos_nginx:v1 /usr/local/nginx/sbin/nginx -g "daemon off;"

后面运行的命令都是旨在container的命令,由于没有进行环境变量设置,所以全路径,而nginx -g这个参数是指可以在外面添加指令到nginx的配置文件中,daemon off是指nginx服务不运行在后端而是在前台运行(container中的服务必须运行在前台)

利用docker top可以查看container的运行进程:

[root@docker ~]# docker top c12669357e2b
uid         pid         ppid        c          stime        tty         time        cmd
root        35468        35451        0          02:55        ?          00:00:00      nginx: master process /usr/local/nginx/sbin/nginx -g daemon off;
1000        35489        35468        0          02:55        ?          00:00:00      nginx: worker process

利用docker exec进入到容器内:

[root@docker ~]# docker exec -it c12669357e2b /bin/bash
[root@c12669357e2b /]# ps -ef
uid     pid  ppid c stime tty     time cmd
root     1   0 0 06:55 ?    00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -g daemon off;
nginx     5   1 0 06:55 ?    00:00:00 nginx: worker process
root     6   0 1 07:01 pts/0  00:00:00 /bin/bash
root     20   6 0 07:01 pts/0  00:00:00 ps -ef

而使用ctrl+p+q可以将该容器置于后台,而不是马上exited

读到这里,这篇“docker怎么手动构建新镜像”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: docker怎么手动构建新镜像

本文链接: https://www.lsjlt.com/news/96363.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • docker怎么手动构建新镜像
    本文小编为大家详细介绍“docker怎么手动构建新镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么手动构建新镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • docker怎么构建centos镜像
    要构建一个CentOS镜像,可以按照以下步骤操作: 首先,需要在本地安装Docker。可以在官方网站上下载适合您操作系统的Doc...
    99+
    2023-10-27
    docker centos
  • jenkins怎么构建docker镜像
    Jenkins是一个持续集成和持续交付(CI/CD)工具,可以用来自动化构建、测试和部署应用程序。要在Jenkins中构建Docke...
    99+
    2023-10-27
    jenkins docker
  • 手动构建自己的docker容器镜像实战
    目录前言一. 设置docker构建镜像的环境1.1 commit 命令的介绍1.2 创建一个tomcat容器二. 开始构建自己的镜像2.1 查看容器的ID2.2 使用命令docker...
    99+
    2023-05-15
    docker容器镜像实战 docker容器镜像
  • Docker镜像构建中docker commit怎么使用
    这篇“Docker镜像构建中docker commit怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Doc...
    99+
    2023-06-29
  • Docker-compose+Dockerfile构建并启动php7.4镜像
    利用官方镜像+Dockerfile构建符合自己要求php7.4镜像 DockerFile apt官方源太慢时,切换apt源该dockerfile支持的php额外扩展 bcmatch event exif gd mysqli iconv pc...
    99+
    2023-09-01
    运维 php docker
  • docker怎么自定义镜像构建php7
    这篇文章主要讲解了“docker怎么自定义镜像构建php7”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker怎么自定义镜像构建php7”吧!首先进行...
    99+
    2024-04-02
  • docker怎么通过Dockerfile构建mysql镜像
    本篇内容主要讲解“docker怎么通过Dockerfile构建mysql镜像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker怎么通过Dockerfile构建mysql镜像”吧!构建Do...
    99+
    2023-06-30
  • 使用Dockerfile构建docker镜像
    目录使用Dockerfile构建docker镜像 1、什么是Dockerfile?2、执行一个Dockerfile,构建镜像   今天我们看看Dockerfile...
    99+
    2024-04-02
  • 怎么创建一个新的Docker镜像
    本篇内容介绍了“怎么创建一个新的Docker镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们在使用Dockerfile构建docker...
    99+
    2023-06-04
  • Docker镜像多架构构建介绍
    前言: 目前arm系统越来越常见,对镜像的多架构需求也越来越大。对于同一个镜像,最简单的办法就是在amd64或arm机器上build后通过不同的tag进行区分,比如 nginx:v1...
    99+
    2024-04-02
  • 怎么构建自己的docker容器镜像
    本文小编为大家详细介绍“怎么构建自己的docker容器镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么构建自己的docker容器镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一. 设置docker构建...
    99+
    2023-07-05
  • docker怎么创建镜像
    创建Docker镜像的步骤如下:1. 编写Dockerfile:创建一个文本文件,命名为Dockerfile,并在其中描述镜像的构建...
    99+
    2023-09-16
    docker
  • 使用Dockerfile怎么构建一个Docker镜像
    这篇文章将为大家详细讲解有关使用Dockerfile怎么构建一个Docker镜像,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Dockerfile是一个文本文件,其内包含了一条条的指令(In...
    99+
    2023-06-06
  • docker基于Alpine Linux构建镜像
    Alpine Linux,一个只有5M的Docker镜像。是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,...
    99+
    2023-01-30
    镜像 docker Alpine
  • 怎么使用Google ContainerTools容器构建docker镜像
    本篇内容介绍了“怎么使用Google ContainerTools容器构建docker镜像”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!插件...
    99+
    2023-06-29
  • 怎么使用 Gradle构建Spring-Boot的Docker镜像
    这期内容当中小编将会给大家带来有关怎么使用 Gradle构建Spring-Boot的Docker镜像,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。通常我们使用 Dockerfile 来构建项目的Docke...
    99+
    2023-06-19
  • docker如何使用Dockerfile构建镜像
    本文小编为大家详细介绍“docker如何使用Dockerfile构建镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker如何使用Dockerfile构建镜像”文章能帮助大家解决疑惑,下面跟着小编...
    99+
    2024-04-02
  • Docker镜像构建之dockercommit的使用
    目录1、创建容器2、拷贝资源3、安装资源4、构建镜像5、使用构建的镜像创建容器我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求。尽管已经从繁琐的部...
    99+
    2024-04-02
  • Dockerfile怎么构建镜像
    这篇文章主要介绍“Dockerfile怎么构建镜像”,在日常操作中,相信很多人在Dockerfile怎么构建镜像问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Dockerfile怎么构建镜像”的疑惑有所帮助!...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作