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

docker (podman)构建容器镜像

[复制链接]

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
发表于 2018-6-21 17:05:32 | 显示全部楼层 |阅读模式
[root@c63d7538a2ca /]# yum install -y net-tools
% |: M- d# u# Y8 JLoaded plugins: fastestmirror, ovl- a. ], k" P& s  {& m, |
Loading mirror speeds from cached hostfile1 d; ?  B& ?0 l- p
* base: mirrors.huaweicloud.com
) h# ?' J: L: r * extras: mirrors.huaweicloud.com. S, x. n5 a: s) O6 A
* updates: mirrors.huaweicloud.com
+ n5 m" t# v( F( G0 cResolving Dependencies- |; c& r) X1 W3 f8 m
--> Running transaction check
' g) i; N- l: C- _- f$ K---> Package net-tools.x86_64 0:2.0-0.22.20131004git.el7 will be installed; ^3 ~4 l) J! b- v; u- _
--> Finished Dependency Resolution
$ ~# t! W2 ~. k- d* G+ h: k
+ t' [( o9 Z. }* T% s% i: P: dDependencies Resolved
/ }# R1 M+ C  i6 X" `+ M* Q: y' o9 x, D% T( C; x+ k* L
================================================================================
+ `$ b  ~1 O, B2 V* {" G Package         Arch         Version                          Repository  Size
. g# p! }( D+ d3 z% z( _; ~, {( A================================================================================  Y5 q6 C- }& d* A# g
Installing:. f0 V8 j; b4 R9 \7 K  Q, Y4 S9 F
net-tools       x86_64       2.0-0.22.20131004git.el7         base       305 k8 e  a5 M$ C- |) d: ~

4 y3 ~3 Q$ C1 S4 t/ |& D9 M( G0 RTransaction Summary
8 N0 O6 ^5 R2 K================================================================================* @4 J) D/ {+ I# R
Install  1 Package
' Y4 e9 P9 v0 y1 s/ x& S: m0 i- H1 O/ q7 d' f; v8 T9 \
Total download size: 305 k  X& ~; Y8 x' I. E" t' [6 P
Installed size: 917 k' u9 g( a0 [+ ?3 v; |% N
Downloading packages:* p+ }# p0 O) {' b
net-tools-2.0-0.22.20131004git.el7.x86_64.rpm              | 305 kB   00:02     4 J, O  \8 V9 a9 R
Running transaction check
1 r0 s- r4 V  T' \& {4 _Running transaction test% \( ]+ g2 V7 W, H) D- U
Transaction test succeeded( z" D* `/ j5 @4 R+ }, o
Running transaction, h) c3 O( E/ V7 I
  Installing : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1
! W- Q( j+ y9 j$ K4 B' \/ q/ o6 k$ I  Verifying  : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1
7 u( M8 b' e7 ]+ y- P5 }: F$ M1 @( K' \$ M$ @( P4 Y: \/ v& p' M
Installed:
6 o$ U+ |& }1 k/ O9 A6 H  net-tools.x86_64 0:2.0-0.22.20131004git.el7                                   
; B. g: W( L+ Q% Q) |3 n
/ K5 Y- N0 ]: T1 H) y9 g+ v) G/ K  F; }$ m4 {
[root@c63d7538a2ca /]# yum install -y vim . V$ u" S* G5 n+ H
Loaded plugins: fastestmirror, ovl
( W9 Z/ I9 H& s5 k$ s4 ^  OLoading mirror speeds from cached hostfile% z3 d! a5 w2 e5 U8 P! K
* base: mirrors.huaweicloud.com
( ?. p& `. s( J4 |: ~" a * extras: mirrors.huaweicloud.com
, i8 B! E$ _3 H' Z' O- h& [2 S. I( V( U! A * updates: mirrors.huaweicloud.com
* M8 S  K+ i8 NResolving Dependencies
! y: E# {  l5 H! s5 A--> Running transaction check
/ s9 _, O) f$ F; N" q---> Package vim-enhanced.x86_64 2:7.4.160-4.el7 will be installed
+ c8 D6 Q4 c! J8 `) i
* S* C7 N: C& r 安装的包,可以使用它,制作成一个镜像+ v1 i% {2 ?: @: I
步骤如下:: C! {: S# g4 X6 G( R
[root@dockerserver ~]# docker ps
6 [6 ^- F) D2 r/ B- D% c" hCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6 d9 X  v: y. X- O. Ic63d7538a2ca        centos              "/usr/sbin/init"    24 minutes ago      Up 23 minutes                           hungry_bose" t) R. u! [' W4 g+ ]9 O* ?) a7 @
  hungry_bose是docker 为我们的容器随机分配的名字:$ @$ _; g6 t% e+ C
执行 docker commit 命令将容器保存为镜像
8 c( [" S6 }1 t: I  d  h- C+ P1 }0 x4 C5 X0 l9 X. d) S; R
[root@dockerserver ~]# docker commit hungry_bose hungry_bose_vim! B- M, [3 Z1 J  I
sha256:7119d12ac7bff5dbec177f268843c83209379f90fc33bff6bc2e06b3cfe2a453
8 c+ v) W+ ?2 q2 J. h7 _5 z' ~3 Z. R! H
[root@dockerserver ~]# docker images
7 \9 f6 i: R+ L' d9 [7 MREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE2 F6 w+ K9 ?) ]8 z; O+ e/ y, C
hungry_bose_vim     latest              7119d12ac7bf        35 seconds ago      368MB
- e4 z0 A9 g  o6 [4 C( x* `centos              latest              49f7960eb7e4        2 weeks ago         200MB
2 n5 R7 w2 ^7 Q/ n5 k) U* I& T# U4 z* t
从size上可以看出镜像变大了,因为安装了软件而发生变化1 j, B9 ~, G6 @6 I
从新的镜像启动容器,验证vim已经可以使用了。  L% G# m/ x0 T
[root@dockerserver ~]# docker run --privileged -it hungry_bose_vim  /usr/sbin/init &
: e: Q; H# I: G; b; J: d[3] 7826# h+ U' I+ U: X0 x' u8 J  \& {
( a) R) k2 [% G* y5 `

  p% r/ r3 F! W1 m
3 S; |* k( `# L* Q7 _: O- _
. ]* g9 Y' t; ?* j9 h% y[root@compute01 ~]# podman commit stream8 centos8:stream8-1
1 X) U% r% Q  Y5 O3 U) }/ DGetting image source signatures+ E' w% N, g, D6 P- J" I* u) Y4 F
Copying blob c3dee2a613b9 skipped: already exists  
3 w$ ?5 L% b- @0 F- o" d. m, MCopying blob f53b51bcab65 done  
& X7 m( e+ W8 j8 }# C6 E$ X1 d9 pCopying config f3e7aa6982 done  9 j7 I! x* D6 e& b
Writing manifest to image destination3 m5 k( M$ o& |
Storing signatures: k: w( K6 C) o( P. k, b
f3e7aa69823b8a3557c704d836a91f3a02628059a26246310e283e2b65ff97bf  K$ ^4 a8 j1 x7 b9 F
[root@compute01 ~]# podman images
' z4 _* u7 h% S6 l& ZREPOSITORY                        TAG         IMAGE ID      CREATED         SIZE
# |& F9 T+ c$ u  }localhost/centos8                 stream8-1   f3e7aa69823b  21 seconds ago  1.65 GB  o( j7 _/ h7 [8 T
localhost/centos8                 stream      6fd6181ebba0  5 hours ago     1.65 GB' ^) T* J/ w) W  c' N

- q* F. N# @  Q[root@compute01 ~]# ' h8 o1 Q1 [9 t/ j1 N5 ~2 o4 c9 }
启动容器:6 a% G( Y7 c6 ]* L
[root@compute01 ~]# podman run -d -t -i --network=host  --name stream8 --restart=always --privileged=true  centos8:stream8-1  /sbin/init /bin/bash0 H/ _- ]5 {8 ], ~

- E8 G& j, W/ g) u

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
 楼主| 发表于 2018-6-21 17:07:18 | 显示全部楼层
[root@dockerserver ~]# docker ps -a
4 z: ^# N1 E# TCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3 N. g* G* z$ Q/ \1eb419a7b2e7        hungry_bose_vim     "/usr/sbin/init"    54 seconds ago      Created                                 pensive_einstein+ r; t7 I7 r* Y
c63d7538a2ca        centos              "/usr/sbin/init"    About an hour ago   Up About an hour                        hungry_bose: g9 U( g: U. v5 R
[root@dockerserver ~]# docker start 1eb419a7b2e70 ^$ T. v6 a1 v
1eb419a7b2e7
. p: }8 t4 F  D4 H" k) l# s[root@dockerserver ~]# docker exec -it 1eb419a7b2e7 /bin/bash
) A) p* J* s# Y) m( T7 }4 W$ Q% L8 I3 L2 c5 \7 L: w. a

; Y3 V3 K( R5 O# L# _[root@1eb419a7b2e7 /]# vim: d! x$ k+ `4 n8 P: [& _: o

* x9 E; a! ~4 Q0 }9 }3 G! i# b6 |% [& W
+ I1 o2 J; h( F~                                                                              
: X6 w" M& f4 ?~                                                                               # a8 R2 n" k9 h6 P! S
~                                                                               * H( l$ g9 _" ~$ y( a
~                                                                               2 S2 M, h$ o/ \* P
~                              VIM - Vi IMproved                                
/ {% ~! C' s- Y+ ^~                                                                               1 ]+ j* l0 b* a
~                               version 7.4.1099                                
# Q. t$ s, v) c: h& n~                           by Bram Moolenaar et al.                           
$ M/ N9 b( f; j* C; G- A, {~                      Modified by <bugzilla@redhat.com>                        7 ?& x6 i! p& m- Z8 p4 L
~                 Vim is open source and freely distributable                  
9 G, E8 ~. R& |- ~: q~                                                                              
/ a9 ]; e( U7 N6 F; p5 x& r+ F~                        Become a registered Vim user!                          # T+ Z; t2 J0 O1 L! e
~                type  :help register<Enter>   for information                  2 H: [" ~# k9 n1 E- }2 W, O
~                                                                              
' @4 J4 ~1 k# ]% G& Q6 j~                type  :q<Enter>               to exit                          
0 h1 C: f' n; M+ ~( h' c- `) C5 Z~                type  :help<Enter>  or  <F1>  for on-line help                 * U4 {3 ?6 z( @; f
~                type  :help version7<Enter>   for version info                 6 X0 m# Q. t% |2 x9 e) Q
~                                                                               6 O( a' O8 X( [5 i% G/ E
~                                                                              
" K( L! N) h" L- A8 R~                                                                               ) M: i2 I9 f' @# b

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:11:13 | 显示全部楼层
[root@dockerserver ~]# docker pull hungry_bose_vim     #pull 文件7 \7 E# e" q; `1 t  C
[root@dockerserver ~]# docker push hungry_bose_vim    #push文件# b1 Y: b2 V/ b) s1 q; a3 D

3 _8 p& h, _5 N$ `[root@dockerserver ~]# docker push hungry_bose_vim:latest
. [( t* _6 e( M4 nThe push refers to repository [docker.io/library/hungry_bose_vim]% Q( @% H' S8 U/ N; A7 `
779523b02d19: Preparing
: K$ O! c% }9 t0 xbcc97fbfc9e1: Preparing ( r1 o  U+ Y. f9 W) m) h+ D7 Y
denied: requested access to the resource is denied( S0 B, V/ [' A/ N7 ^- R2 G

  ^% c9 t0 z: n" s% c# ~9 r

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:12:48 | 显示全部楼层
1、docker -h 帮助
, Y6 x: z8 Q+ W: |( S/ V2、获取镜像
2 V+ k8 o" f  y3 b5 s3 e" h3 Asudo docker pull NAME[:TAG]
8 K) t+ |1 }3 u7 bsudo docker pull centos:latest
2 H, N) M) \5 }2 }) I8 w3、启动Container盒子; `$ O! e% `8 n5 `+ t+ u1 @
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]+ J+ c# }8 A3 V0 o+ [6 s
sudp docker run -t -i contos /bin/bash
  E& ?- |! Q7 g3 ^6 P4、查看镜像列表,列出本地的所有images! ]( T7 `2 w) ^5 m
sudo docker images [OPTIONS] [NAME]7 n- }) H' a/ c
sudo docker images centos! t: D; V' A5 w# s$ I; @
5、查看容器列表,可看到我们创建过的所有container
2 M2 n+ g3 w; K- r) bsudo docker ps [OPTIONS]7 b. w3 k8 O1 _( W2 H4 i
sudo docker ps -a+ @4 ]' u, \1 X* E" U. a: V1 X
6、删除镜像,从本地删除一个已经下载的镜像
! o! @# p: B2 g. q9 ~( h6 j1 {- csudo docker rmi IMAGE [IMAGE...]2 }. c4 V( I# [& M: U
sudo docker rmi centos:latest: O  W' f9 w, s3 i1 |3 h" f4 Z
7、移除一个或多个容器实例/ p) F, i* y( I8 Y
sudo docker rm [OPTIONS] CONTAINER [CONTAINER...]5 p: E2 l, A+ G6 j& Q
移除所有微运行的容器
9 O8 V: F& x- G& B/ Hsudo docker rm sudo docker ps -aq
% N5 G/ E+ h' e$ T3 ~! k: W8、停止一个正在运行的容器
# k8 Y+ W/ ~" E; Z5 ]& Isudo docker kill [OPTIONS] CONTAINER [CONTAINNER...]
; a5 [* [. N0 o! ~/ V. Gsudo docker kill 026e6 G  C6 C  z! y! K9 d2 g. l
9、重启一个正在运行的容器
* g5 I$ N4 U: h; ?$ }6 S& jsudo docker restart [OPTIONS] contains[CONTAINER]
- w6 `5 ]' g- J$ Q, u. ?sudo docker restart 026e8 i  A: A2 e- t& ]" b
10、停止一个已经停止的容器4 J6 S2 W7 h3 D5 l
sudo docker start [OPTIONS] CONTAINER [CONTAINER..]
# V. S5 L2 j! ~. S: L+ p# @sudo docker start 026e
: n/ h2 v8 R9 w1 v8 d: D2 ?; R$ z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 02:18 , Processed in 0.025130 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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