五:通过dockerfile构建镜像

dockfile:类似于ansible的剧本。编写剧本,纯文本,极小,更适合传输;适用于定制化开发。可以参考一下这个简介:https://www.runoob.com/docker/docker-dockerfile.htmlhttps://docs.docker.com/engine/reference/builder/

dockerfile主要包括:from:基础镜像信息;run:基础镜像信息;CMD:容器启动时执行指令

 dockerfile常用命令

FROM     这个镜像的妈妈是谁,指定基础镜像

MAINTAINER  指定维护者信息,可以不负责

RUN     致使他做什么,在相应的命令前面加上RUN

ADD     copy文件,会自动解压

WORKDIR  设置当前的工作目录

VOLUME    给它一个存放行李的地方,设置卷,挂载主机目录

EXPOSE     需要放开的端口  -P端口随机

CMD      指定容器启动时执行的命令,容易被替换

ENTRYPONIT  不会被替换

[root@docker-1-26 centos_ssh]# cat dockerfile       #文件名必须为dockerfile
FROM centos:centos7            #初始镜像
RUN yum install openssh-server -y       #安装命令    仔细观察发现会起一个临时的容器
RUN echo "1qaz@WSX"|passwd --stin root    #设置密码
CMD ["/usr/sbin/sshd","-D"]          #初始命令
复制代码

[root@docker-1-26 centos_ssh]# docker image build -t centos7_ssh:v1.1 .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos:centos7
---> 8652b9f0cb4c
Step 2/4 : RUN yum install openssh-server -y
---> Running in 98bbaa9e1789
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.bfsu.edu.cn
* updates: mirrors.bfsu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package openssh-server.x86_64 0:7.4p1-21.el7 will be installed
--> Processing Dependency: openssh = 7.4p1-21.el7 for package: openssh-server-7.4p1-21.el7.x86_64
--> Processing Dependency: fipscheck-lib(x86-64) >= 1.3.0 for package: openssh-server-7.4p1-21.el7.x86_64
--> Processing Dependency: libwrap.so.0()(64bit) for package: openssh-server-7.4p1-21.el7.x86_64
--> Processing Dependency: libfipscheck.so.1()(64bit) for package: openssh-server-7.4p1-21.el7.x86_64
--> Running transaction check
---> Package fipscheck-lib.x86_64 0:1.4.1-6.el7 will be installed
--> Processing Dependency: /usr/bin/fipscheck for package: fipscheck-lib-1.4.1-6.el7.x86_64
---> Package openssh.x86_64 0:7.4p1-21.el7 will be installed
---> Package tcp_wrappers-libs.x86_64 0:7.6-77.el7 will be installed
--> Running transaction check
---> Package fipscheck.x86_64 0:1.4.1-6.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
openssh-server x86_64 7.4p1-21.el7 base 459 k
Installing for dependencies:
fipscheck x86_64 1.4.1-6.el7 base 21 k
fipscheck-lib x86_64 1.4.1-6.el7 base 11 k
openssh x86_64 7.4p1-21.el7 base 510 k
tcp_wrappers-libs x86_64 7.6-77.el7 base 66 k

Transaction Summary
================================================================================
Install 1 Package (+4 Dependent packages)

Total download size: 1.0 M
Installed size: 3.0 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/fipscheck-lib-1.4.1-6.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for fipscheck-lib-1.4.1-6.el7.x86_64.rpm is not installed
--------------------------------------------------------------------------------
Total 234 kB/s | 1.0 MB 00:04
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-9.2009.0.el7.centos.x86_64 (@CentOS)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : fipscheck-1.4.1-6.el7.x86_64 1/5
Installing : fipscheck-lib-1.4.1-6.el7.x86_64 2/5
Installing : openssh-7.4p1-21.el7.x86_64 3/5
Installing : tcp_wrappers-libs-7.6-77.el7.x86_64 4/5
Installing : openssh-server-7.4p1-21.el7.x86_64 5/5
Verifying : fipscheck-lib-1.4.1-6.el7.x86_64 1/5
Verifying : tcp_wrappers-libs-7.6-77.el7.x86_64 2/5
Verifying : fipscheck-1.4.1-6.el7.x86_64 3/5
Verifying : openssh-7.4p1-21.el7.x86_64 4/5
Verifying : openssh-server-7.4p1-21.el7.x86_64 5/5

Installed:
openssh-server.x86_64 0:7.4p1-21.el7

Dependency Installed:
fipscheck.x86_64 0:1.4.1-6.el7 fipscheck-lib.x86_64 0:1.4.1-6.el7
openssh.x86_64 0:7.4p1-21.el7 tcp_wrappers-libs.x86_64 0:7.6-77.el7

Complete!
Removing intermediate container 98bbaa9e1789
---> a749884040ff
Step 3/4 : RUN echo '1qaz@WSX'|passwd --stdin root
---> Running in 5ef37e892009
Changing password for user root.
passwd: all authentication tokens updated successfully.
Removing intermediate container 5ef37e892009
---> 40a55f70c3b0
Step 4/4 : CMD "/usr/sbin/sshd -D"
---> Running in 7eebb19ee8a1
Removing intermediate container 7eebb19ee8a1
---> 848e290b9062
Successfully built 848e290b9062
Successfully tagged centos7_ssh:v1.1
[root@docker-1-26 centos_ssh]#

复制代码

然后就可以启动镜像进行测试了

另外,可以参照学习一下docker官网对一些常用容器的dockerfile写法,尤其是对于最后一步CMD;https://github.com/docker-library/httpd/blob/077141ee37fca63972292c562ec0f632d0f831b1/2.4/Dockerfile

 

posted @   woshinidaye  阅读(496)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示