docker如何自定义镜像
docker如何自定义镜像?
1、要实现利用docker技术,首先要先安装docker包
本次用的是docker-engine-1.12.1-1.el7.centos.x86_64.rpm;docker技术是基于本机的底层系统,在系统之上,封装打包并交付应用程序。它可以让容器启动起来像一个进程一样快捷。
基于docker技术,可以把需要的最小化各种系统环境当成一个镜像封装上,像启动一个进程一样启动起来。
2、制作自定义docker镜像
先在docker官网上下载一个docker的镜像
docker search docker docker pull docker
官网上的镜像都是最下化安装,所以要先配置一个yum源,且在centos镜像中安装上平时用的软件,及启动httpd和sshd,具体操作如下:
yum -y install docker-engine-1.12.1-1.el7.centos.x86_64.rpm mkdir testcd testtouch Dockerfile vim Dockerfile FROM centos:latest RUN rm -f /etc/yum.repos.d/* ADD centos7.repo /etc/yum.repos.d/centos7.repo RUN yum -y install httpd openssh-server net-tools bash-completion.noarch \ iproute vim-enhanced EXPOSE 80 22 RUN echo "123456" |passwd --stdin root RUN /usr/sbin/sshd-keygen ENV EnvironmentFile=/etc/sysconfig/sshd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is centos1:httpd">index.html ENV EnvironmentFile=/etc/sysconfig/httpd ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wq
注释:
EXPOSE是指定开放容器的哪些端口;
ADD是把当前的目录下的文件传到容器中指定目录下;必须是当前路径
RUN是指在容器中执行哪些命令;
FROM是指定源镜像,即这个镜像是基于哪个镜像来做的。
WORKDIR是指定容器中的工作目录,相当于centos系统中的cd命令
ENV是定义环境变量
CMD指定容器启动来了之后执行的第一条命令为什么,需要用[]和引号分隔,如果有选项,则中间用逗号分隔,例如:["/usr/sbin/sshd","-D"]
创建的文件必须叫Dockerfile
如果感觉手动书写这些命令比较复杂,可以进入基本镜像中去执行各种命令,然后用history把命令查看出来,cp命令出来,用上面的相应的格式替换出来就可以了。
3、编写启动脚本
由于docker镜像的CMD是定义启动容器后执行的第一条默认命令,所以CMD中只能写一条命令,而在这个案例中,我们要启动两个程序sshd和httpd,所以需要写一个脚本,让CMD直接执行脚本即可。
vim qd.sh#!/bin/bash/usr/sbin/sshd -D & /usr/sbin/httpd -DFOREGROUND :wq
chmod +x qd.sh //加执行权限
4、创建镜像
需在当前目录下执行
docker build -t wang:sh2 .
5、启动镜像,并且把容器的端口映射出来
docker run -d -p 80:80 -p 2022:22 wang:sh2
把容器的80端口映射到物理机的80端口,把容器的22端口映射到物理机的2022端口。
6、访问验证
firefox http://192.168.1.194(物理机) ssh -p 2022 192.168.1.194
7、扩展
也可以先做一个当一的sshd服务的镜像出来,再基于sshd这个镜像来做httpd的容器:
im Dockerfile FROM wang:sshd RUN yum -y httpd EXPOSE 80 22ENV EnvironmentFile=/etc/sysconfig/httpd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is httpd and sshd">index.html ADD qd.sh /root/qd.sh CMD ["/root/qd.sh"] :wq
相关参考:docker教程
以上是docker如何自定义镜像的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

可切换到国内镜像源,步骤如下:1. 编辑配置文件 /etc/docker/daemon.json,添加镜像源地址;2. 保存退出后,重启 Docker 服务 sudo systemctl restart docker,即可提升镜像下载速度和稳定性。

要获取 Docker 版本,您可以执行以下步骤:运行 Docker 命令“docker --version”来查看客户端和服务器版本。对于 Mac 或 Windows,还可以通过 Docker Desktop GUI 的“版本”选项卡或“关于 Docker Desktop”菜单查看版本信息。

创建 Docker 镜像步骤:编写包含构建指令的 Dockerfile。在终端中构建镜像,使用 docker build 命令。标记镜像,使用 docker tag 命令分配名称和标签。

可以通过以下步骤查询 Docker 容器名称:列出所有容器(docker ps)。筛选容器列表(使用 grep 命令)。获取容器名称(位于 "NAMES" 列中)。

Docker LNMP 容器调用步骤:运行容器:docker run -d --name lnmp-container -p 80:80 -p 443:443 lnmp-stack获取容器 IP:docker inspect lnmp-container | grep IPAddress访问网站:http://<容器 IP>/index.phpSSH 访问:docker exec -it lnmp-container bash访问 MySQL:mysql -u roo

如何运行 Docker 命令?安装 Docker并启动守护程序。常用 Docker 命令:docker images:显示镜像docker ps:显示容器docker run:运行容器docker stop:停止容器docker rm:删除容器使用 Docker 命令与容器交互:docker exec:执行命令docker attach:附加控制台docker logs:显示日志docker commit:提交更改为镜像停止 Docker 守护程序:sudo systemctl stop doc
