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

docker (podman)构建容器镜像

[复制链接]

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
发表于 2018-6-21 17:05:32 | 显示全部楼层 |阅读模式
[root@c63d7538a2ca /]# yum install -y net-tools
7 r- _1 N( }7 h% R3 VLoaded plugins: fastestmirror, ovl
- n# c6 m/ D: T$ m, DLoading mirror speeds from cached hostfile- Q! s& q) a5 e2 v2 R4 y
* base: mirrors.huaweicloud.com
( }8 {& H4 p" M; q3 u * extras: mirrors.huaweicloud.com
9 J# X6 ~; p  { * updates: mirrors.huaweicloud.com8 w# g0 Q" R$ b9 S
Resolving Dependencies% q0 v- R6 k9 M0 _9 J# |3 i/ G
--> Running transaction check9 r! a* ?% S: @
---> Package net-tools.x86_64 0:2.0-0.22.20131004git.el7 will be installed
( G% w; L- }8 G- O! ^--> Finished Dependency Resolution. o  ~. ?) i5 x' o' J8 Q
( U  r, ^+ m* u; W$ a1 r. y) d* M  Y
Dependencies Resolved
7 ]' h2 @- x3 [' u8 K1 ]/ F0 r+ E- G. t
================================================================================$ X$ G4 O9 f) B
Package         Arch         Version                          Repository  Size
2 R1 ?6 d; p! C4 h* h6 r3 K& J================================================================================
' E. G) H4 l9 a, _3 u. ]0 x% s' WInstalling:$ ^; G8 G8 z6 T; a+ i
net-tools       x86_64       2.0-0.22.20131004git.el7         base       305 k1 M$ R# f! r  l: @

  V6 e( C, ?/ m6 U) b, RTransaction Summary
0 j0 s  ^  @$ n  [================================================================================
  k, V5 a" O% u$ R7 m$ o7 a: XInstall  1 Package1 ~9 F6 P7 J5 a2 i; |0 [
. B7 b9 Z! g# B' Z- Q
Total download size: 305 k( t! x+ q; W$ c+ N4 q
Installed size: 917 k
! G% h' s0 q, L$ _Downloading packages:
; v1 Y) G: C# |  @3 ynet-tools-2.0-0.22.20131004git.el7.x86_64.rpm              | 305 kB   00:02     7 D3 J" I7 @' X3 v
Running transaction check3 k5 a$ @, L3 u7 c. \2 @  q6 L
Running transaction test( k4 F9 e" ~4 `' R6 q. H
Transaction test succeeded
' x" z" G& G4 ?; _) ?% |% [0 WRunning transaction8 R$ o: Z7 d7 N6 h' b
  Installing : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1 ( ^3 m7 q! f+ n7 l) A0 a, p
  Verifying  : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1
$ p- i: C+ V6 i( {2 {6 [4 `- p
7 W5 x- B* Y: }# H1 ~Installed:
) r$ P' h/ X+ X0 r0 m9 x7 T6 w  net-tools.x86_64 0:2.0-0.22.20131004git.el7                                   
: v/ A; t5 z) I; g- E: T+ D' p8 D- G$ u4 _& h% D! [) E
7 N& [% R& k$ l- O& F- e1 }/ O
[root@c63d7538a2ca /]# yum install -y vim
1 Q, ]) `, Z3 b, bLoaded plugins: fastestmirror, ovl5 e+ T  t3 R+ ^+ X
Loading mirror speeds from cached hostfile
* I/ F7 M* K+ m4 M * base: mirrors.huaweicloud.com
  u: G7 _! B+ l9 ~% U) ` * extras: mirrors.huaweicloud.com
8 Z+ [6 l# S$ M: ?( D5 A * updates: mirrors.huaweicloud.com
6 V4 q( i1 l+ O6 T4 b7 ^) n& c. TResolving Dependencies( z& |0 ~* T5 _
--> Running transaction check4 t# ]. q/ c+ k8 q# b/ ~: T
---> Package vim-enhanced.x86_64 2:7.4.160-4.el7 will be installed
! T( t- ~/ B6 @4 d
. _" }( }# q  s8 q4 R! H) o 安装的包,可以使用它,制作成一个镜像
7 u* C+ F% H' `步骤如下:
- j% b2 ^/ d* o9 I7 \[root@dockerserver ~]# docker ps) f9 J  D0 G8 L
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES3 Q! U9 w; }% H, p, C$ O
c63d7538a2ca        centos              "/usr/sbin/init"    24 minutes ago      Up 23 minutes                           hungry_bose
- g8 b5 d, z+ c! D6 o  hungry_bose是docker 为我们的容器随机分配的名字:) m) v3 ?' d( t0 h
执行 docker commit 命令将容器保存为镜像
' i& N0 f2 u' {* m9 Y9 ?5 Y8 i9 \( Q) E" Q1 s' A
[root@dockerserver ~]# docker commit hungry_bose hungry_bose_vim
) n$ z% p4 ^8 P! Tsha256:7119d12ac7bff5dbec177f268843c83209379f90fc33bff6bc2e06b3cfe2a453
- k4 U. j0 f8 B' Y' T
* Z& _! V9 N  o7 q9 e7 T+ b[root@dockerserver ~]# docker images
8 p7 X/ q) h1 m% _REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE$ D1 K( ~9 P, U7 X
hungry_bose_vim     latest              7119d12ac7bf        35 seconds ago      368MB
: g! X8 k/ |- E# Scentos              latest              49f7960eb7e4        2 weeks ago         200MB
! N" c0 D' N; Q; l+ t" i0 _2 L* `6 m* `* ?  _0 ^8 g
从size上可以看出镜像变大了,因为安装了软件而发生变化& p- Q6 L/ m/ o5 G
从新的镜像启动容器,验证vim已经可以使用了。7 Q- y8 X: T) q' v  E8 Y
[root@dockerserver ~]# docker run --privileged -it hungry_bose_vim  /usr/sbin/init &$ O! Y+ \! h1 w! H1 Z
[3] 7826% e3 S$ F* Q5 f6 i, R
2 H9 f7 M! ]4 g: k
' [2 n4 A- z. T" Z# }' }7 S, W& F( E

" ?* _- i7 Y4 n: z! k
1 y, _) P/ S% i" y. ^- E[root@compute01 ~]# podman commit stream8 centos8:stream8-1
  |. M$ V' u  m4 c/ ~3 ]4 \Getting image source signatures
( m# U( Z8 {, E) N1 D) f* Z% M# DCopying blob c3dee2a613b9 skipped: already exists  # K, s0 k+ C: Y# h
Copying blob f53b51bcab65 done  - k3 r$ U2 M# l2 L) O" l3 B
Copying config f3e7aa6982 done  
  `& `( ?- ^% c( T8 O% @Writing manifest to image destination7 `- V( e/ p: e* H2 f5 ^
Storing signatures0 m$ Y' q- F1 @1 Q" Z( f/ i" r# g# f
f3e7aa69823b8a3557c704d836a91f3a02628059a26246310e283e2b65ff97bf( f5 l, q# {' B1 j! T
[root@compute01 ~]# podman images 2 m: H, e5 p) T* k) L9 H
REPOSITORY                        TAG         IMAGE ID      CREATED         SIZE
$ Y1 Q: H" M; n9 A( hlocalhost/centos8                 stream8-1   f3e7aa69823b  21 seconds ago  1.65 GB
, [, S+ {' @" `+ u0 d$ g% plocalhost/centos8                 stream      6fd6181ebba0  5 hours ago     1.65 GB
8 m$ T6 h- F7 O8 B3 N, O3 o9 p# W% t' A. [; D4 m
[root@compute01 ~]#
9 `7 B5 o7 g+ Y9 v3 U% v/ `启动容器:
, f) b! s1 [& `- y8 T7 |[root@compute01 ~]# podman run -d -t -i --network=host  --name stream8 --restart=always --privileged=true  centos8:stream8-1  /sbin/init /bin/bash+ ?0 V8 u* \! c- [8 R$ \% _, F# p

2 C6 w/ X1 E7 Z; }$ d1 I  j/ A

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
 楼主| 发表于 2018-6-21 17:07:18 | 显示全部楼层
[root@dockerserver ~]# docker ps -a3 x5 I2 u3 G: [# d% S" I
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
) ^$ t7 h: v! J9 a* L1eb419a7b2e7        hungry_bose_vim     "/usr/sbin/init"    54 seconds ago      Created                                 pensive_einstein- V2 y* G* o7 v& i
c63d7538a2ca        centos              "/usr/sbin/init"    About an hour ago   Up About an hour                        hungry_bose
' B, M3 z$ g7 e[root@dockerserver ~]# docker start 1eb419a7b2e7
/ |. f% H  v0 ?8 I4 u2 J5 _; H1eb419a7b2e7' }8 s/ s/ Z4 P! J- q, W  E
[root@dockerserver ~]# docker exec -it 1eb419a7b2e7 /bin/bash% }1 t5 z" u% F9 x1 w6 f
2 k" I! M9 s. D' h
& ?; K2 u' b2 E2 K
[root@1eb419a7b2e7 /]# vim
9 ?# G2 D4 b# a( m5 G# a
, b/ |4 }/ Q! p8 M! m+ j
; ^2 c5 B" U) N3 F. k/ j' A~                                                                              
) l8 A% Z: T6 Z5 _~                                                                              
, d( f& i5 x. B  w7 M1 V% _( N~                                                                              
, _& y" P. C8 \~                                                                              
2 N$ F" i+ c. `: @. J~                              VIM - Vi IMproved                                : ]/ [( S4 B5 [9 F% m: f: G
~                                                                              
/ x8 {) r0 G" y/ N- U& p( ?~                               version 7.4.1099                                1 N& N7 ]  \/ z6 ]8 |/ c5 I" `4 q; ]
~                           by Bram Moolenaar et al.                            ' [/ h/ w' q) c0 a% w3 ~9 A( ~
~                      Modified by <bugzilla@redhat.com>                        ) t' C  g) t$ ~/ p% y- f
~                 Vim is open source and freely distributable                  
, {. |+ k& s# S( N4 `: A~                                                                              
, J' N* ]2 ]( b& M+ R# A~                        Become a registered Vim user!                          ; l. [7 E0 w$ H% n5 _
~                type  :help register<Enter>   for information                  2 h& W* S- m: r3 A) @: ~! m
~                                                                              
0 p: f, e; B3 T~                type  :q<Enter>               to exit                          
/ g1 C; t. I7 k, C: J+ W% k6 ^' B~                type  :help<Enter>  or  <F1>  for on-line help                 
# u2 j1 k2 v, d. g9 z) r- B~                type  :help version7<Enter>   for version info                 - E* M/ p' a3 V$ o! P# q2 t
~                                                                               . S" _4 z& K7 X- }: a# y
~                                                                              
+ n0 T! v: q- [3 R1 }6 O  _~                                                                                 d; b- A* \) a$ t5 o

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:11:13 | 显示全部楼层
[root@dockerserver ~]# docker pull hungry_bose_vim     #pull 文件
8 \! u; r: `7 y0 p, |7 v+ z [root@dockerserver ~]# docker push hungry_bose_vim    #push文件# }( @9 R/ z8 N2 e4 L1 ?- p
" F+ ^+ C* j( p6 w3 q
[root@dockerserver ~]# docker push hungry_bose_vim:latest
( F2 `4 Q" D8 @$ vThe push refers to repository [docker.io/library/hungry_bose_vim]
& _0 p8 _; s) ]0 `. S, ~779523b02d19: Preparing # Z& ^" `9 F. B, O+ W0 n. B* @6 V
bcc97fbfc9e1: Preparing - Y, R3 b: g7 S) I7 F" y5 ^
denied: requested access to the resource is denied
% u- \) _; I# N% `( p' ]6 w! K# Y, z

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:12:48 | 显示全部楼层
1、docker -h 帮助5 S8 J1 v* y4 Z
2、获取镜像
* _  u$ d% _7 i4 W# b4 p8 Usudo docker pull NAME[:TAG]- S" O  ^0 o5 j- W& k3 o
sudo docker pull centos:latest  l. E- ?' p+ B7 ]1 k3 n
3、启动Container盒子
1 y! G* v) E4 X& xsudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]6 U) z5 l1 _) q7 O: D+ m
sudp docker run -t -i contos /bin/bash
" @+ n& J2 i# V  v; _2 A; Q4、查看镜像列表,列出本地的所有images; d1 Y7 a4 R4 T- t! R
sudo docker images [OPTIONS] [NAME]
' `& M4 v& r& e( A8 }0 ]sudo docker images centos
2 ~( p$ U6 O6 \, ~/ G; F$ W5 D5、查看容器列表,可看到我们创建过的所有container
8 d' M) r+ l( ~( o7 psudo docker ps [OPTIONS]; z$ N3 B' O' h( ~
sudo docker ps -a; \- z/ E. S, K- S
6、删除镜像,从本地删除一个已经下载的镜像
" V/ F  d1 F# W/ v7 E2 ]sudo docker rmi IMAGE [IMAGE...]
/ R# A% t# `* hsudo docker rmi centos:latest# t; T& d& c& m( O! Y
7、移除一个或多个容器实例
: N6 F" q0 B) x* ysudo docker rm [OPTIONS] CONTAINER [CONTAINER...]$ N! p- e! {' o' p8 u
移除所有微运行的容器
1 N6 y) }, z% fsudo docker rm sudo docker ps -aq
1 z' c+ x6 E* @4 O6 i+ S0 w6 P8、停止一个正在运行的容器9 L* @/ {& [4 R+ {! k3 m; U
sudo docker kill [OPTIONS] CONTAINER [CONTAINNER...]
( m0 m, {/ h1 J3 b' usudo docker kill 026e
# P; _  x) V7 m8 @+ z9、重启一个正在运行的容器6 f( n, q% e- I7 s. F: K' I
sudo docker restart [OPTIONS] contains[CONTAINER]. X2 W8 o" E* J: w' X5 F5 a3 d
sudo docker restart 026e# H- m6 v+ ~) u9 k7 S- W
10、停止一个已经停止的容器; Z$ g0 J3 a2 ~- U  Z
sudo docker start [OPTIONS] CONTAINER [CONTAINER..]& g5 i0 S  Y# }. z# l; I
sudo docker start 026e
$ r7 F. b5 L% W( J5 ^& N) f. h6 m
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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