找回密码
 注册
查看: 5148|回复: 3

docker (podman)构建容器镜像

[复制链接]

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
发表于 2018-6-21 17:05:32 | 显示全部楼层 |阅读模式
[root@c63d7538a2ca /]# yum install -y net-tools
( Q  I& Y$ O7 b& c# p+ \5 ]Loaded plugins: fastestmirror, ovl/ ~+ W. a' w3 F, e7 X% C
Loading mirror speeds from cached hostfile
2 Y( d1 U% j6 ?6 B * base: mirrors.huaweicloud.com; g& p" b& e6 h) M+ v3 m( @& w, ^1 }5 f
* extras: mirrors.huaweicloud.com% z5 @3 T, _7 l
* updates: mirrors.huaweicloud.com/ T. Z. n* Z& i4 |' b( }( a
Resolving Dependencies
) |# Q# {! j( Y0 b- y/ A--> Running transaction check
4 q, A1 n; x  x; I& b$ _---> Package net-tools.x86_64 0:2.0-0.22.20131004git.el7 will be installed5 i4 a1 u$ I) N) {8 J* H0 [& Z
--> Finished Dependency Resolution
* C2 F: O" X' ?' `! j9 U6 m) I: M7 Q( o
Dependencies Resolved$ z1 P* h: }  `$ p" w$ h' x
- A) f1 S- X$ e, B; B
================================================================================' Z, I2 Q& ~2 P( `" Y
Package         Arch         Version                          Repository  Size
' f) s$ x. ^2 X  I0 Y7 J0 H================================================================================; B+ x! P3 V! @& Q+ c3 X
Installing:
  j. ^5 \# U* k+ O- { net-tools       x86_64       2.0-0.22.20131004git.el7         base       305 k
/ X; G# K6 x# Q: f8 \/ |4 E3 ]; a+ _! o  d' P7 W) G% f
Transaction Summary
/ V3 a5 j- h% J4 @( @================================================================================
& s) V4 N1 \$ i' ~7 K2 qInstall  1 Package
; j) R% i; q% R+ y: P4 ]& c$ p; k, ?$ _0 e
Total download size: 305 k' w+ z. Q& q& L; X4 R% H/ m
Installed size: 917 k: u3 V, b1 n  y& x: m5 o
Downloading packages:# O# a( ~/ a, e  ^* U/ O$ A
net-tools-2.0-0.22.20131004git.el7.x86_64.rpm              | 305 kB   00:02     " M" z+ z: h6 t. y' a
Running transaction check
# u0 P( I# e4 M# s! d8 |' uRunning transaction test
# `1 b% m9 C* g. J) ^! ]Transaction test succeeded
7 A/ ~6 H  ^+ ^# oRunning transaction
+ @3 M5 ]+ z7 M  g" F  Installing : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1
/ j: o, B) L( ^, O; u/ \  Verifying  : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1 # K  c' v: }$ G% Q2 W& _2 ]

& L* P5 h( v$ c9 x5 i6 f3 \% |Installed:# P4 a9 o4 W: U% j. g- }% q& C
  net-tools.x86_64 0:2.0-0.22.20131004git.el7                                   ! y* V7 s- y; m; f4 Y/ c

- {0 W- T# X% `) o2 B3 T
6 A& J( w3 ^. ][root@c63d7538a2ca /]# yum install -y vim
( _& V" e7 @) F: T; JLoaded plugins: fastestmirror, ovl
" g  i/ b% T5 z: T) u, aLoading mirror speeds from cached hostfile6 n$ l& h1 ]5 b. F: x% Y
* base: mirrors.huaweicloud.com
  w4 c! m* x0 a& E8 s * extras: mirrors.huaweicloud.com
$ {+ W1 ~! \9 h  k% W9 r * updates: mirrors.huaweicloud.com
" B1 y# S3 R# h, l+ K  zResolving Dependencies
) X, A) S  Z  K/ Y) Z! Q5 h) x--> Running transaction check
  u9 u- x5 w8 o4 m! l0 }  z---> Package vim-enhanced.x86_64 2:7.4.160-4.el7 will be installed
. U4 x6 X2 \* O, D0 I. D% I) l
9 o- h6 f* H/ q, N8 T& P 安装的包,可以使用它,制作成一个镜像
2 z% T# Z3 R9 I; [3 v步骤如下:" e1 |' v& Q7 m& I& ]
[root@dockerserver ~]# docker ps* E" @4 r) R7 R' o
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES# Q! m. R4 [! s, i/ v2 G% {7 z
c63d7538a2ca        centos              "/usr/sbin/init"    24 minutes ago      Up 23 minutes                           hungry_bose
4 @' d1 @1 e1 U- @* m  hungry_bose是docker 为我们的容器随机分配的名字:
/ i1 B3 m; ~, M0 @% v执行 docker commit 命令将容器保存为镜像1 @' ^' q! b% U: u1 A+ D/ S& _
% @/ W& t+ S) e6 h. [  R; q
[root@dockerserver ~]# docker commit hungry_bose hungry_bose_vim5 s8 |) x7 N' G# }) ~
sha256:7119d12ac7bff5dbec177f268843c83209379f90fc33bff6bc2e06b3cfe2a453; s; \# R5 b1 I3 b
% W( p; Q; O* _8 f( q
[root@dockerserver ~]# docker images1 a  I0 ~+ t9 N) ?, s
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
: s1 @3 p6 d2 y; |( F; c: k* khungry_bose_vim     latest              7119d12ac7bf        35 seconds ago      368MB# g% Z  C: g! C  q8 J
centos              latest              49f7960eb7e4        2 weeks ago         200MB+ I3 Y- ^0 S. s% s3 m: U" l

1 ~. ?; r% g  B+ n, I1 i) q从size上可以看出镜像变大了,因为安装了软件而发生变化3 K6 p* T0 ]( I0 b; g. {
从新的镜像启动容器,验证vim已经可以使用了。
+ Z1 M5 n+ I2 D  h3 o" G$ P[root@dockerserver ~]# docker run --privileged -it hungry_bose_vim  /usr/sbin/init &
! o& J  l# ^+ G: Z[3] 7826
! R6 q+ b$ b/ j! S7 d3 k
7 ]0 z6 U! f* ^$ R) d1 U7 z% y7 L7 c0 c, P
# D- L. O; i0 J" P$ n

; [8 z3 c8 F# I( P' Y[root@compute01 ~]# podman commit stream8 centos8:stream8-1
/ X1 |$ n. ~, x& `+ d' R) P+ j3 wGetting image source signatures
+ [0 d  O, P. O& M! b2 ?( P2 eCopying blob c3dee2a613b9 skipped: already exists  5 W3 T- ^) D# g! ~# ?! m( l
Copying blob f53b51bcab65 done  
8 C, }$ {: O( ^) |, PCopying config f3e7aa6982 done  # ], }: W# O$ \4 h6 ?' E
Writing manifest to image destination
' t( t0 m$ }$ E- p/ y6 uStoring signatures1 Z9 `1 c% {, C1 C
f3e7aa69823b8a3557c704d836a91f3a02628059a26246310e283e2b65ff97bf
7 N3 Y1 `3 e0 D  e1 P/ h[root@compute01 ~]# podman images 3 ^- p7 F. y. y# t8 S, u: \( E
REPOSITORY                        TAG         IMAGE ID      CREATED         SIZE: T4 D0 j/ U# ?! h9 F* @
localhost/centos8                 stream8-1   f3e7aa69823b  21 seconds ago  1.65 GB! A. H( p$ s" h$ O/ B: }5 L
localhost/centos8                 stream      6fd6181ebba0  5 hours ago     1.65 GB0 X# i, n4 C, j8 i

! r( o& h# k0 c8 K8 D. U% _[root@compute01 ~]# 2 I5 |6 A- U, A/ h" f5 f& b
启动容器:
- f5 w; }% E7 s) \2 S[root@compute01 ~]# podman run -d -t -i --network=host  --name stream8 --restart=always --privileged=true  centos8:stream8-1  /sbin/init /bin/bash
; N* K1 ?9 ~# T# o  w" `+ u% B
; t# d& q( `8 T. n  ?& r

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
 楼主| 发表于 2018-6-21 17:07:18 | 显示全部楼层
[root@dockerserver ~]# docker ps -a& f0 M0 e9 F) D# T! \
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
& s& g; k0 R7 c1eb419a7b2e7        hungry_bose_vim     "/usr/sbin/init"    54 seconds ago      Created                                 pensive_einstein, O  V) L6 Z8 C( V9 p
c63d7538a2ca        centos              "/usr/sbin/init"    About an hour ago   Up About an hour                        hungry_bose
+ P8 @6 z' K. c- W[root@dockerserver ~]# docker start 1eb419a7b2e7
8 A* k: v: }' E1eb419a7b2e79 f5 J' m7 Z/ T0 D7 _: Q
[root@dockerserver ~]# docker exec -it 1eb419a7b2e7 /bin/bash
9 X5 f+ o6 f" m+ ]* V$ t+ d
/ R, w) b" `" e$ i- H9 w( v$ _2 [0 x% T$ v) S# d
[root@1eb419a7b2e7 /]# vim4 }% ^/ L# Z+ m$ L2 A) O
& l, E1 j7 |0 X2 Z1 s

$ s1 @8 L2 I' c; ^8 `- @~                                                                              
, f/ [% V; K) l0 S~                                                                              
0 [' n( S3 I/ ^0 z. [6 E" a: q~                                                                              
& t+ c: Z9 o2 f9 O7 L0 G5 n" \~                                                                              
+ t( m5 d/ ]1 N, p+ h% d~                              VIM - Vi IMproved                                
6 u+ l; W# j, e$ T# Y& ?1 ~~                                                                               * F; C0 K( i) y& @7 w
~                               version 7.4.1099                                ( \- v$ y3 ^3 U
~                           by Bram Moolenaar et al.                           
! d/ Z+ y! S! Z' f0 {, l% D~                      Modified by <bugzilla@redhat.com>                        
5 G2 ]- G. M+ h1 L~                 Vim is open source and freely distributable                  
) \) a5 d7 P/ ?: ~7 u  l1 p~                                                                              
2 b( y& t' i$ ?. h~                        Become a registered Vim user!                          
4 C, i# U; {6 B! c7 t; z~                type  :help register<Enter>   for information                  
7 R/ v$ s5 A8 i  D+ v+ L; L  d~                                                                               : v$ Q9 ~2 p9 |' @* {% S
~                type  :q<Enter>               to exit                          
. w+ a, m* d/ T* ?$ t* g  R~                type  :help<Enter>  or  <F1>  for on-line help                 
! w8 R% A9 Q6 b~                type  :help version7<Enter>   for version info                 
7 k' _5 j& x- U5 C3 J  ]5 c~                                                                               * A: ^+ I: A" w2 y' Q) q& x8 h
~                                                                               0 `  ?  f  Q6 I6 w
~                                                                              
2 }8 A3 ]2 t4 A5 I

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:11:13 | 显示全部楼层
[root@dockerserver ~]# docker pull hungry_bose_vim     #pull 文件
3 [" Y! L# h+ ?+ K& `( u' m8 P. t [root@dockerserver ~]# docker push hungry_bose_vim    #push文件
! s9 z( T$ B( G1 F8 }/ t) Z* c+ F9 N# K' Z* F
[root@dockerserver ~]# docker push hungry_bose_vim:latest . q% h) m% n% V0 s* g" p
The push refers to repository [docker.io/library/hungry_bose_vim]6 T( c5 M- G; ]& }
779523b02d19: Preparing
& }& _2 Z+ X$ ^, y; x; Y& g' Q' Qbcc97fbfc9e1: Preparing ; q6 ^3 f2 A6 G& |
denied: requested access to the resource is denied# U/ ]. a  D# [9 G9 g4 B! s
' u; ?$ V2 b  n. {6 I; }. q

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:12:48 | 显示全部楼层
1、docker -h 帮助% M7 m6 W* o9 m- b( V
2、获取镜像
( F; t* `# N7 k7 nsudo docker pull NAME[:TAG]+ ~& \8 {. ~+ H9 j& E
sudo docker pull centos:latest
6 ~7 U. [2 t) r. n  o& @) C3、启动Container盒子
9 F  D4 P; k( \7 v3 V' b. ~) o. Xsudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]$ P( O) c% Z" G( G
sudp docker run -t -i contos /bin/bash6 S* i0 |  Z: Q! @8 t& |1 X
4、查看镜像列表,列出本地的所有images% {/ d$ t& C, h1 f% q, V2 i' k
sudo docker images [OPTIONS] [NAME]5 l+ w# R! r% Y3 b; X, K
sudo docker images centos
+ W, E# X& s' u9 o5、查看容器列表,可看到我们创建过的所有container
9 x& U/ B3 a& x3 B1 I5 Esudo docker ps [OPTIONS]  g. V6 [% t  z3 }
sudo docker ps -a
! h6 h% Q/ K( a9 Q$ ~( }) R  l& v6、删除镜像,从本地删除一个已经下载的镜像
/ Z6 P3 S: Y' H8 S5 Gsudo docker rmi IMAGE [IMAGE...]
& ]5 \6 S# b; Gsudo docker rmi centos:latest
4 w# ^5 y; a& z, v4 ~7、移除一个或多个容器实例
* @) _' F" W4 H' K- W' Fsudo docker rm [OPTIONS] CONTAINER [CONTAINER...]
% M* h: l9 s5 l  \移除所有微运行的容器
: p3 z# @0 e7 Z& D0 X+ c+ y4 w- P' ~sudo docker rm sudo docker ps -aq
5 h# i$ H4 {! k& F/ I2 u8、停止一个正在运行的容器
! k  P# t1 W. {$ Ksudo docker kill [OPTIONS] CONTAINER [CONTAINNER...]4 L# x/ g; `8 m6 Y3 s
sudo docker kill 026e$ c) c7 M3 n/ _: @8 t
9、重启一个正在运行的容器5 D) I3 O, i' f" }4 L
sudo docker restart [OPTIONS] contains[CONTAINER]
& V# g/ d7 B$ ^4 k2 [sudo docker restart 026e
: `- o& `) j2 n; Q) R5 C& v10、停止一个已经停止的容器
& N+ ]2 {5 Y2 Csudo docker start [OPTIONS] CONTAINER [CONTAINER..]( ^/ ^. S# o6 B: M  G2 _: O& b+ V4 A
sudo docker start 026e
! u  a0 v3 s& w* Y8 E( b/ l$ X8 C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:26 , Processed in 0.032279 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表