收藏本页 | 设为主页 | RSS
LOGO

我就上乐乐吧

用户可以先从DockerHub获取已有镜像并拉取到本地,然后再来定制化自己的镜像,相关的步骤如下[以alpine+sshd为例]:

您当前的位置:首页 » 技术杂萃
全站公告
重要提示!

本站收集各类美图,以无LOGO原汁原味图为主!欢迎大家交流。
怕失联,请认准如下地址:
微博:传送门
土豆:传送门
电报:传送门
微信:superimagelove
花瓣:传送门
Q群1:231151757
Q群2:583138281
文件解压密码:593668.com
热心赞助

站内搜索
 
相关文章
热门文章
热搜词组
文章归档
友情链接
Docker如何定制化自己的镜像

发布日期:2020-01-20  关键词: Docker

用户可以先从Docker Hub获取已有镜像并拉取到本地,然后再来定制化自己的镜像,相关的步骤如下[以alpine+sshd为例]:

A) 手工执行

1)先使用下载的镜像启动容器。
$ docker run -it alpine/latest /bin/ash

2)在容器中添加相关软件

/# apk update && apk add openssh openrc tzdata\
   && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  \
   && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \
   && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key \
   && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key \
   && sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config \
   && echo "root:admin" | chpasswd \
   && rm -rf /var/cache/apk/* /tmp/* \
   && /usr/sbin/sshd

以上将root密码设置成admin,当结束后,就可以使用exit来退出,现在容器已经被我们改变了,使用 docker commit 命令来提交更新后的副本。

$  docker commit -m "Added sshd" -a "sunson@593668.com" 0b2616b0e5a8 wmf/alpine:0.1

其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的ID;最后指定目标镜像的仓库名和tag信息。创建成功后docker就会返回这个镜像的ID信息。

B)利用Dockerfile,内容如下:
#指定创建的基础镜像
FROM alpine/latest
# 作者描述信息
MAINTAINER alpine_sshd (sunson@593668.com)
# 替换阿里云的源
RUN echo "传送门; > /etc/apk/repositories
RUN echo "传送门; >> /etc/apk/repositories
# 更新源、安装openssh 并修改配置文件和生成key 并且同步时间
RUN apk update && \
    apk add --no-cache openssh-server tzdata && \
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
    ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \
    ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \
    ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key && \
    echo "root:admin" | chpasswd && \
rm -rf /var/cache/apk/* /tmp/*

# 开放22端口
EXPOSE 22

# 执行ssh启动命令
CMD ["/usr/sbin/sshd", "-D"]

建立命令如下[在Dockerfile文件目录中执行]:
docker build -t alpine:sshd .

建好之后,就可以使用docker images来查看新创建的镜像,也可以直接使用新的镜像来启动容器。
猜您喜欢:
Q群: 231151757微信:superimagelove 官网:www.593668.com