Docker中DockerFile的使用

编写一个dockerfile文件

常用指令

FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的, 姓名+邮箱 例如:name<xxx@qq.com>
RUN # 镜像构建的时候需要运行的命令
ADD # 添加内容 添加同目录
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 保留端口配置
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。
ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令。
COPY # 类似ADD,将我们文件拷贝到镜像中
ENV # 构建的时候设置环境变量!

编写一个自己的dockerfile文件

ROM centos

MAINTAINER you<123456789@qq.com>

ENV MYPATH /usr/local

WORKDIR $MYPATH

RUN yum -y install vim

RUN yum -y install net-tools

EXPOSE 125

CMD echo"------end------"
CMD /bin/bash

docker build 构建称为一个镜像

[root@izbp1doatyz9rmpmxs06naz home]# docker build -f /home/dockerfile -t mycentos:1.0 .
Sending build context to Docker daemon  3.584kB
Step 1/9 : FROM centos
 ---> 300e315adb2f
Step 2/9 : MAINTAINER you<123456789@qq.com>
 ---> Running in a5398ec2c2a1
Removing intermediate container a5398ec2c2a1
 ---> 128e29086a45
Step 3/9 : ENV MYPATH /usr/local
 ---> Running in 337368c11e59
Removing intermediate container 337368c11e59
 ---> d0fe955afd6e
Step 4/9 : WORKDIR $MYPATH
 ---> Running in 8940092e765c
Removing intermediate container 8940092e765c
 ---> 38ca5b27b000
Step 5/9 : RUN yum -y install vim
 ---> Running in 763d09dace60
CentOS Linux 8 - AppStream                      2.7 MB/s | 6.3 MB     00:02    
CentOS Linux 8 - BaseOS                         3.0 MB/s | 2.3 MB     00:00    
CentOS Linux 8 - Extras                          10 kB/s | 9.6 kB     00:00    
Last metadata expiration check: 0:00:01 ago on Sat Apr 17 13:26:49 2021.
Dependencies resolved.
================================================================================
 Package             Arch        Version                   Repository      Size
================================================================================
Installing:
 vim-enhanced        x86_64      2:8.0.1763-15.el8         appstream      1.4 M
Installing dependencies:
 gpm-libs            x86_64      1.20.7-15.el8             appstream       39 k
 vim-common          x86_64      2:8.0.1763-15.el8         appstream      6.3 M
 vim-filesystem      noarch      2:8.0.1763-15.el8         appstream       48 k
 which               x86_64      2.21-12.el8               baseos          49 k

Transaction Summary
================================================================================
Install  5 Packages

Total download size: 7.8 M
Installed size: 30 M
Downloading Packages:
(1/5): gpm-libs-1.20.7-15.el8.x86_64.rpm        165 kB/s |  39 kB     00:00    
(2/5): vim-filesystem-8.0.1763-15.el8.noarch.rp 228 kB/s |  48 kB     00:00    
(3/5): vim-enhanced-8.0.1763-15.el8.x86_64.rpm  2.5 MB/s | 1.4 MB     00:00    
(4/5): which-2.21-12.el8.x86_64.rpm             431 kB/s |  49 kB     00:00    
(5/5): vim-common-8.0.1763-15.el8.x86_64.rpm    7.0 MB/s | 6.3 MB     00:00    
--------------------------------------------------------------------------------
Total                                           4.1 MB/s | 7.8 MB     00:01     
warning: /var/cache/dnf/appstream-02e86d1c976ab532/packages/gpm-libs-1.20.7-15.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS Linux 8 - AppStream                      1.6 MB/s | 1.6 kB     00:00    
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : which-2.21-12.el8.x86_64                               1/5 
  Installing       : vim-filesystem-2:8.0.1763-15.el8.noarch                2/5 
  Installing       : vim-common-2:8.0.1763-15.el8.x86_64                    3/5 
  Installing       : gpm-libs-1.20.7-15.el8.x86_64                          4/5 
  Running scriptlet: gpm-libs-1.20.7-15.el8.x86_64                          4/5 
  Installing       : vim-enhanced-2:8.0.1763-15.el8.x86_64                  5/5 
  Running scriptlet: vim-enhanced-2:8.0.1763-15.el8.x86_64                  5/5 
  Running scriptlet: vim-common-2:8.0.1763-15.el8.x86_64                    5/5 
  Verifying        : gpm-libs-1.20.7-15.el8.x86_64                          1/5 
  Verifying        : vim-common-2:8.0.1763-15.el8.x86_64                    2/5 
  Verifying        : vim-enhanced-2:8.0.1763-15.el8.x86_64                  3/5 
  Verifying        : vim-filesystem-2:8.0.1763-15.el8.noarch                4/5 
  Verifying        : which-2.21-12.el8.x86_64                               5/5 

Installed:
  gpm-libs-1.20.7-15.el8.x86_64         vim-common-2:8.0.1763-15.el8.x86_64    
  vim-enhanced-2:8.0.1763-15.el8.x86_64 vim-filesystem-2:8.0.1763-15.el8.noarch
  which-2.21-12.el8.x86_64             

Complete!
Removing intermediate container 763d09dace60
 ---> 0c52cb404051
Step 6/9 : RUN yum -y install net-tools
 ---> Running in 40cc58d6803d
Last metadata expiration check: 0:00:09 ago on Sat Apr 17 13:26:49 2021.
Dependencies resolved.
================================================================================
 Package         Architecture Version                        Repository    Size
================================================================================
Installing:
 net-tools       x86_64       2.0-0.52.20160912git.el8       baseos       322 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 322 k
Installed size: 942 k
Downloading Packages:
net-tools-2.0-0.52.20160912git.el8.x86_64.rpm   1.7 MB/s | 322 kB     00:00    
--------------------------------------------------------------------------------
Total                                           540 kB/s | 322 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 
  Running scriptlet: net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 
  Verifying        : net-tools-2.0-0.52.20160912git.el8.x86_64              1/1 

Installed:
  net-tools-2.0-0.52.20160912git.el8.x86_64                                     

Complete!
Removing intermediate container 40cc58d6803d
 ---> 51984fb4034e
Step 7/9 : EXPOSE 125
 ---> Running in 48b9e27e5eec
Removing intermediate container 48b9e27e5eec
 ---> 3c4de2399cf8
Step 8/9 : CMD echo"------end------"
 ---> Running in b1cc94d6bcbb
Removing intermediate container b1cc94d6bcbb
 ---> 03e47fb7dd28
Step 9/9 : CMD /bin/bash
 ---> Running in a71a8dd5cd6d
Removing intermediate container a71a8dd5cd6d
 ---> d168e47f6cf0
Successfully built d168e47f6cf0

在自己编写的dockerfile中,每一行的代码在生成镜像的时候就是一层。
查看自己生成的镜像:

[root@izbp1doatyz9rmpmxs06naz home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mycentos     1.0       d168e47f6cf0   9 seconds ago   291MB

docker run运行镜像

#运行之后直接进入工作目录 /usr/local
#在docker下载的centos是没有vim命令的
#RUN yum -y install vim添加了vim命令
[root@izbp1doatyz9rmpmxs06naz home]# docker run -it --name mycentos001  mycentos:1.0 /bin/bash 
[root@15d580df2bba local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@15d580df2bba local]# vim test
[root@15d580df2bba local]# cat test
echo "hello world"
[root@15d580df2bba local]# 

docker push发布镜像

1、首先要登录自己的docker账号

[root@izbp1doatyz9rmpmxs06naz home]# docker login -u yjp123
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

2、进行发布
如果直接用自己生成的镜像名进行上传,是上传不上去的。如果直接上传,会默认上传到官方的library。把生成的进行生成到自己的仓库就可以上传成功。
方法1:在docker build 的时候把名字命名为docker账号id/自己的镜像名。当上传的时候就会上传到自己的仓库
方法2:使用docker tag 镜像id docker账号id/自己的镜像名:版本号。就会新生成一个加了docker账号id前缀的镜像。内容不变。之后直接docker push docker账号id/自己的镜像名:版本号,就能上传成功。

[root@izbp1doatyz9rmpmxs06naz home]# docker tag d168e47f6cf0 yjp123/mycentos:1.0
[root@izbp1doatyz9rmpmxs06naz home]# docker images
REPOSITORY               TAG       IMAGE ID       CREATED          SIZE
mycentos                 1.0       d168e47f6cf0   27 minutes ago   291MB
yjp123/mycentos   1.0       d168e47f6cf0   27 minutes ago   291MB
nginx                    latest    62d49f9bab67   3 days ago       133MB
centos                   latest    300e315adb2f   4 months ago     209MB
[root@izbp1doatyz9rmpmxs06naz home]# docker push yjp123/mycentos
Using default tag: latest
The push refers to repository [docker.io/yjp123/mycentos]
tag does not exist: yjp2359471308/mycentos:latest
[root@izbp1doatyz9rmpmxs06naz home]# docker push yjp2359471308/mycentos:1.0
The push refers to repository [docker.io/yjp123/mycentos]
05de7977a5b1: Pushed 
338515c99c8e: Pushed 
2653d992f4ef: Mounted from library/centos 
1.0: digest: sha256:ccb6fdbf7295f058a732025d4c0ab3a06f75f1b3bef39c3ff53946eef40b262e size: 953
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值