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

docker (podman)构建容器镜像

[复制链接]

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
发表于 2018-6-21 17:05:32 | 显示全部楼层 |阅读模式
[root@c63d7538a2ca /]# yum install -y net-tools
; @8 `0 U: I) t" _+ }$ R0 i& B4 ULoaded plugins: fastestmirror, ovl
" c7 f  _6 m% @6 F' z) ]Loading mirror speeds from cached hostfile" V9 U& E# F6 L' C# I
* base: mirrors.huaweicloud.com$ C( b' c0 p) M7 N( a! U- k" Q
* extras: mirrors.huaweicloud.com# c! ~  ^5 [* C. p# A: O
* updates: mirrors.huaweicloud.com
- N4 v) I# C' Y, O& JResolving Dependencies
, @5 |& i" I* Y" z) p--> Running transaction check
9 b) s5 K! j# m8 Z; ^5 n---> Package net-tools.x86_64 0:2.0-0.22.20131004git.el7 will be installed
4 {# [. J$ n# ?1 O# |2 Z6 c--> Finished Dependency Resolution
# H! Y- `9 b( H7 G; \
0 c4 F/ L# M! K6 wDependencies Resolved
: |8 v. R4 S$ G7 F, _# x( R2 y' j* S
================================================================================
- `# I3 d' |$ X- D: h7 l Package         Arch         Version                          Repository  Size
* A; t' d: I1 z" Z1 ~================================================================================9 l/ p. ^/ ]7 h- ]8 \2 J
Installing:: s0 b$ x& _- U6 V: l) ^
net-tools       x86_64       2.0-0.22.20131004git.el7         base       305 k( m% C* H# ]4 H4 V
; H6 e) E9 E) u
Transaction Summary
: s) I# ~4 B# Q- C================================================================================
6 m; Z( T/ W  J; |Install  1 Package
; ?$ F6 R" \2 o" T+ N$ b2 {) U3 O$ j8 j3 `* ?. }
Total download size: 305 k: l/ q2 K" \, J- z7 r) [% V( d+ h
Installed size: 917 k( i) u7 ~4 I7 p2 R8 {! @
Downloading packages:  P7 V- R" p7 S7 y+ v* Z0 ^) t
net-tools-2.0-0.22.20131004git.el7.x86_64.rpm              | 305 kB   00:02     - }5 }- C  T+ E
Running transaction check
! B6 M; f( L6 q. Z# _0 B- C  NRunning transaction test
) f' J3 Y6 Q+ A# B5 OTransaction test succeeded6 l* s# W9 d; O) }- {. I
Running transaction
# u+ E3 m+ [, {  Installing : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1 * m. R: Z2 V" L& e. a0 [
  Verifying  : net-tools-2.0-0.22.20131004git.el7.x86_64                    1/1
7 ?5 Q* }9 O' J8 q4 V4 T1 b
2 l; P1 q* {# v9 l! qInstalled:9 ?  O8 y8 x+ U/ _9 q
  net-tools.x86_64 0:2.0-0.22.20131004git.el7                                   
. ?4 J* C+ f" b$ S! [0 |+ I: ^' x1 h' ?/ L' }/ {+ j1 j
9 I) m+ t5 c3 f$ N( F/ W- c
[root@c63d7538a2ca /]# yum install -y vim + ^' b( [& V: E4 k6 v& g/ L
Loaded plugins: fastestmirror, ovl, O4 D4 t4 P, L# ?4 }) }5 ?
Loading mirror speeds from cached hostfile2 W# c$ M# V7 |/ b5 P7 J( q- Y
* base: mirrors.huaweicloud.com
) c# O) s/ ^+ b8 r) a' Y, S * extras: mirrors.huaweicloud.com
+ W) Z$ `( C* S" m; \ * updates: mirrors.huaweicloud.com
3 r& \/ |8 ?2 |* y  U- p: qResolving Dependencies' e- j( A( i9 q# m$ A: e3 w
--> Running transaction check8 h" A' g( d4 z6 X% F
---> Package vim-enhanced.x86_64 2:7.4.160-4.el7 will be installed
& t; L' I0 V$ \: ?6 w4 ^/ d/ n! F! j: X$ p- {& w
安装的包,可以使用它,制作成一个镜像# @( q( k0 |$ P) R+ ^1 ]+ K0 `; \
步骤如下:; S. `1 r. E0 n" C) N
[root@dockerserver ~]# docker ps
3 \- _' K% ~: r: C: e* fCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES( O5 A3 ]: t% Y* U9 C
c63d7538a2ca        centos              "/usr/sbin/init"    24 minutes ago      Up 23 minutes                           hungry_bose9 ^4 [8 N6 |5 K+ u, K
  hungry_bose是docker 为我们的容器随机分配的名字:
% a* X. [/ y9 t* K  Z0 r执行 docker commit 命令将容器保存为镜像
' L8 e1 S& h+ J5 ]% A% k- O
; a, d% R8 @4 D& q5 T4 v0 i[root@dockerserver ~]# docker commit hungry_bose hungry_bose_vim
+ c, W/ f7 ?8 y: ^# P4 a# `sha256:7119d12ac7bff5dbec177f268843c83209379f90fc33bff6bc2e06b3cfe2a4539 j+ L: ~& V; ~4 ^. \# y

$ {9 {/ g6 _* M[root@dockerserver ~]# docker images4 _" O; A0 s5 S! I' [
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE7 Z' s+ X& G* t' Q# h$ _$ D1 `  e
hungry_bose_vim     latest              7119d12ac7bf        35 seconds ago      368MB( e$ G% U$ g3 `1 w! ]' V7 R
centos              latest              49f7960eb7e4        2 weeks ago         200MB! }. Z( r4 {2 s5 v! \

* K6 P( [0 ^! x4 ~2 a# q从size上可以看出镜像变大了,因为安装了软件而发生变化9 S$ {8 v) Q. L+ s
从新的镜像启动容器,验证vim已经可以使用了。6 \" s1 j/ f: ?4 c
[root@dockerserver ~]# docker run --privileged -it hungry_bose_vim  /usr/sbin/init &
: ^6 h1 ?' k4 C/ j* C3 Y7 `7 k[3] 7826  {" L' {+ j5 P7 S; p0 M3 n
  X$ v8 P4 |: d) Q0 k

, k$ ?  T* L# R4 O, `# }
: I0 y8 Z* ]' F* d, Z6 _( a7 C1 a. W
[root@compute01 ~]# podman commit stream8 centos8:stream8-1) G6 h8 l, l1 z; v) M' M
Getting image source signatures5 r2 j' f2 e. V: s: q
Copying blob c3dee2a613b9 skipped: already exists  # \4 x7 `- v0 I$ n: }! ^" |
Copying blob f53b51bcab65 done  
4 R: e" M  ^8 U: `! t5 ^+ Y( vCopying config f3e7aa6982 done  / B/ H; Z* b$ }* |* ~0 s
Writing manifest to image destination) M* |- z: V( \/ b
Storing signatures
+ v6 S1 m2 I( N7 j; j# N0 y1 Df3e7aa69823b8a3557c704d836a91f3a02628059a26246310e283e2b65ff97bf% {5 L2 n: h( F. a
[root@compute01 ~]# podman images
9 d" s3 o1 T4 f! V5 f% h5 qREPOSITORY                        TAG         IMAGE ID      CREATED         SIZE% v. b2 S- E% e+ C, p) G
localhost/centos8                 stream8-1   f3e7aa69823b  21 seconds ago  1.65 GB, h4 V( l2 r- b$ _' _6 Y: l
localhost/centos8                 stream      6fd6181ebba0  5 hours ago     1.65 GB
( p8 U% `' j" [: d
! W. p3 R+ x$ ?; ^+ {& [0 Y8 _- Y[root@compute01 ~]#
) D" G# j9 S. O4 o启动容器:
% G8 [- O' l+ ?7 j( @7 m& ^* O( K[root@compute01 ~]# podman run -d -t -i --network=host  --name stream8 --restart=always --privileged=true  centos8:stream8-1  /sbin/init /bin/bash
! B! G1 T  K/ ]/ z( }7 h
; k9 D4 W5 Q0 ^$ N8 N

70

主题

73

回帖

1201

积分

网站编辑

积分
1201
 楼主| 发表于 2018-6-21 17:07:18 | 显示全部楼层
[root@dockerserver ~]# docker ps -a
2 ?9 g# _$ r* U+ jCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
' j; \# u- N. Y  o0 O1eb419a7b2e7        hungry_bose_vim     "/usr/sbin/init"    54 seconds ago      Created                                 pensive_einstein
' u: ?# _# n& uc63d7538a2ca        centos              "/usr/sbin/init"    About an hour ago   Up About an hour                        hungry_bose
2 W) D' G4 U* G; r$ S[root@dockerserver ~]# docker start 1eb419a7b2e7
& ?6 t; D# H& |, _3 b1eb419a7b2e7
0 e8 u) }; Y4 G$ Z4 B[root@dockerserver ~]# docker exec -it 1eb419a7b2e7 /bin/bash* t' w' g6 s- h7 y+ ~

5 v( o/ C1 [, k- T2 \1 T  F! B. f! W) e  d. N$ X
[root@1eb419a7b2e7 /]# vim
, c) E5 M. d& ?* @8 c; ~# d: @, |. p1 d* _8 g# D

: a# a% Q1 {2 I& K. O* e~                                                                               5 T4 [) u9 s+ \5 U  ?4 @
~                                                                              
+ v/ S- U1 z( U" Y: P: B~                                                                               8 U% z( I3 S% K8 c( C
~                                                                               ' O. p% Z3 H5 s* `: A4 _! W" k
~                              VIM - Vi IMproved                                0 F- F- j- K" b- S/ Z+ n) v
~                                                                               . s! C1 N5 y) C5 o2 x
~                               version 7.4.1099                                
$ O' x6 g/ L1 A7 O. x& x+ `9 W3 X9 t~                           by Bram Moolenaar et al.                           
. k- O& }$ f4 Y" m: C~                      Modified by <bugzilla@redhat.com>                        8 j8 G, i% w# y- e+ a
~                 Vim is open source and freely distributable                  
$ k+ G% J  w, n: L~                                                                              
; f3 j5 \" B6 _9 \$ [( y  @' g0 {' w~                        Become a registered Vim user!                          5 E2 E% ~2 D' t2 {  ]( s
~                type  :help register<Enter>   for information                  : L: t! a- Z% {5 M( E4 O1 X, S9 o
~                                                                               " O1 o5 w' f, ]
~                type  :q<Enter>               to exit                          6 S, j; C4 n$ l
~                type  :help<Enter>  or  <F1>  for on-line help                 
  G. o; g. Y0 }4 S~                type  :help version7<Enter>   for version info                 " P" p* G; Y0 v# g1 }  e
~                                                                               " S4 k. l3 D8 G* |% p
~                                                                               7 p& x6 b7 T  g. @
~                                                                              
7 V. ?& t3 D1 i1 q

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:11:13 | 显示全部楼层
[root@dockerserver ~]# docker pull hungry_bose_vim     #pull 文件
  d, y6 [0 v2 @: G9 E [root@dockerserver ~]# docker push hungry_bose_vim    #push文件5 Y! p0 j+ q, S2 y5 @* `
: _" B/ o& |$ F2 T  g
[root@dockerserver ~]# docker push hungry_bose_vim:latest 6 y! @# l% b4 d; a# o
The push refers to repository [docker.io/library/hungry_bose_vim]1 j0 E/ K$ P. k) ~& h
779523b02d19: Preparing / n+ f( J& ?3 k% c: |. P4 Q4 u
bcc97fbfc9e1: Preparing 8 X7 @9 q# e( A6 N5 g" {  _5 o
denied: requested access to the resource is denied
# a& i4 v' z* M& l2 K4 [; K3 o4 X$ m2 x2 o9 e- \# z6 u

40

主题

29

回帖

471

积分

新手上路

积分
471
发表于 2018-6-21 17:12:48 | 显示全部楼层
1、docker -h 帮助' Y" d. Q) R! p7 L) i
2、获取镜像
8 N) v) k  e0 @( msudo docker pull NAME[:TAG]% g) t: t" Y! e6 X( y1 {# v
sudo docker pull centos:latest! B9 V) {7 ]8 `, {* D
3、启动Container盒子
* {: N; B6 V2 i' V* Dsudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
9 h2 S9 m& L! ^- C6 e7 F5 Rsudp docker run -t -i contos /bin/bash
6 [6 o6 w. w& [4、查看镜像列表,列出本地的所有images
- P* d, d. j1 z5 z' Nsudo docker images [OPTIONS] [NAME]0 j0 Y' Q; A2 I3 P' r' |+ E' i
sudo docker images centos
% r# O: C3 ~7 T8 x5、查看容器列表,可看到我们创建过的所有container6 p& h/ g1 A; |2 D$ d' G) Y
sudo docker ps [OPTIONS]
, t$ v' X3 K* ?( x! b. |. bsudo docker ps -a
8 a! f+ `1 w2 B" D) o6、删除镜像,从本地删除一个已经下载的镜像
2 x3 P* E+ Z0 o# l, fsudo docker rmi IMAGE [IMAGE...]
. O! ?3 h2 ^- \7 `, U" v# Msudo docker rmi centos:latest4 u1 j$ b2 A7 X* d" {# k
7、移除一个或多个容器实例& E$ _  w+ X: ^1 E+ x
sudo docker rm [OPTIONS] CONTAINER [CONTAINER...]
: x. {1 t! M% E* L5 H0 M移除所有微运行的容器% W& s) u/ u- f! I7 Y
sudo docker rm sudo docker ps -aq
* y# q3 c8 f( A% ?. k: u2 O8、停止一个正在运行的容器
- c3 l0 e' ?! Tsudo docker kill [OPTIONS] CONTAINER [CONTAINNER...]" _# `. u$ W; ?# g' ?8 T
sudo docker kill 026e
* z. C2 u& f5 W* G( q5 r9、重启一个正在运行的容器. R! z- `  C& K$ D# i, ^6 X& l
sudo docker restart [OPTIONS] contains[CONTAINER]/ J8 _' B5 J1 _! p! K) c
sudo docker restart 026e6 r' q4 \% w" E7 |! Z
10、停止一个已经停止的容器
# R. q! v/ o, q" ~/ f7 |sudo docker start [OPTIONS] CONTAINER [CONTAINER..]
9 a2 z! U' f2 ?# Gsudo docker start 026e
" s: V6 I  g3 i1 k1 @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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