网站首页学无止境LINUX

Linux中Docker安装后如何使用Docker容器

发布时间:2015-12-10 16:24:54编辑:songlin阅读(64)

    1.启动一个Docker容器

    1. [root@localhost ~]# docker run -i -t ubuntu /bin/bash 
    2.  
    3. Unable to find image ‘ubuntu’ locally 
    4.  
    5. Pulling repository ubuntu 
    6.  
    7. 04c5d3b7b065: Download complete 
    8.  
    9. 511136ea3c5a: Download complete 
    10.  
    11. c7b7c6419568: Download complete 
    12.  
    13. 70c8faa62a44: Download complete 
    14.  
    15. d735006ad9c1: Download complete 
    16.  
    17. Status: Downloaded newer image for ubuntu:latest 

    注:

    -i:打开容器中的STDIN

    -t:为容器分配一个伪tty终端

    从上面我们可以看出,首先Docker会检查本地是否存在ubuntu镜像,如果在本地没有找到该镜像的话,那么Docker就会去官方的Docker Hub Registry查看Docker Hub中是否有该镜像。Docker一旦找到该镜像,就会下载该镜像并将其保存到本地的宿主机中。

    然后,Docker在文件系统内部用这个镜像创建了一个新的容器。该容器拥有自己的网络、IP地址,以及一个用来可以和宿主机进行通信的桥接网络接口。最后,我们告诉Docker在新容器中要运行什么命令。

    当容器创建完毕之后,Docker就会执行容器中的/bin/bash命令。这时间我们就可以看到容器内的shell

    1. root@8c342c0c275c:/# 

    注:8c342c0c275c代表容器的ID

    2.使用容器

    查看该容器的主机名

    1. root@8c342c0c275c:/# hostname 
    2.  
    3. 8c342c0c275c 

    可以看到,容器的主机名就是该容器的ID

    查看该主机的hosts文件

    1. root@8c342c0c275c:/# cat /etc/hosts 
    2.  
    3. 172.17.0.2 8c342c0c275c 
    4.  
    5. ff00::0 ip6-mcastprefix 
    6.  
    7. ff02::1 ip6-allnodes 
    8.  
    9. ff02::2 ip6-allrouters 
    10.  
    11. 127.0.0.1 localhost 
    12.  
    13. ::1 localhost ip6-localhost ip6-loopback 
    14.  
    15. fe00::0 ip6-localnet 

    可以看到Docker为该容器的IP地址添加了一条主机配置项。

    查看该容器的IP地址

    1. root@8c342c0c275c:/# ip a 
    2.  
    3. 1: lo: 《LOOPBACK,UP,LOWER_UP》 mtu 65536 qdisc noqueue state UNKNOWN group default 
    4.  
    5. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
    6.  
    7. inet 127.0.0.1/8 scope host lo 
    8.  
    9. valid_lft forever preferred_lft forever 
    10.  
    11. inet6 ::1/128 scope host 
    12.  
    13. valid_lft forever preferred_lft forever 
    14.  
    15. 4: eth0: 《BROADCAST,UP,LOWER_UP》 mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 
    16.  
    17. link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff 
    18.  
    19. inet 172.17.0.2/16 scope global eth0 
    20.  
    21. valid_lft forever preferred_lft forever 
    22.  
    23. inet6 fe80::42:acff:fe11:2/64 scope link 
    24.  
    25. valid_lft forever preferred_lft forever 

    查看容器中运行的进程

    1. root@8c342c0c275c:/# ps -aux 
    2.  
    3. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 
    4.  
    5. root 1 0.0 0.1 18168 1976 ? Ss 09:38 0:00 /bin/bash 
    6.  
    7. root 19 0.0 0.0 15568 1144 ? R+ 09:55 0:00 ps -aux 

    在容器中安装一个软件包

    1. root@8c342c0c275c:/# apt-get update && apt-get install vim 
    2.  
    3. Ign http://archive.ubuntu.com trusty InRelease 
    4.  
    5. Ign http://archive.ubuntu.com trusty-updates InRelease 
    6.  
    7. Ign http://archive.ubuntu.com trusty-security InRelease 
    8.  
    9. Hit http://archive.ubuntu.com trusty Release.gpg 
    10.  
    11. Get:1 http://archive.ubuntu.com trusty-updates Release.gpg [933 B] 
    12.  
    13. Get:2 http://archive.ubuntu.com trusty-security Release.gpg [933 B] 
    14.  
    15. Hit http://archive.ubuntu.com trusty Release 
    16.  
    17. Get:3 http://archive.ubuntu.com trusty-updates Release [62.0 kB] 
    18.  
    19. Get:4 http://archive.ubuntu.com trusty-security Release [62.0 kB] 
    20.  
    21. Get:5 http://archive.ubuntu.com trusty/main Sources [1335 kB] 
    22.  
    23. Get:6 http://archive.ubuntu.com trusty/restricted Sources [5335 B] 
    24.  
    25. Get:7 http://archive.ubuntu.com trusty/universe Sources [7926 kB] 
    26.  
    27. Get:8 http://archive.ubuntu.com trusty/main amd64 Packages [1743 kB] 
    28.  
    29. Get:9 http://archive.ubuntu.com trusty/restricted amd64 Packages [16.0 kB] 
    30.  
    31. Get:10 http://archive.ubuntu.com trusty/universe amd64 Packages [7589 kB] 
    32.  
    33. Get:11 http://archive.ubuntu.com trusty-updates/main Sources [193 kB] 
    34.  
    35. Get:12 http://archive.ubuntu.com trusty-updates/restricted Sources [1874 B] 
    36.  
    37. Get:13 http://archive.ubuntu.com trusty-updates/universe Sources [119 kB] 
    38.  
    39. Get:14 http://archive.ubuntu.com trusty-updates/main amd64 Packages [493 kB] 
    40.  
    41. Get:15 http://archive.ubuntu.com trusty-updates/restricted amd64 Packages [14.8 kB] 
    42.  
    43. Get:16 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [298 kB] 
    44.  
    45. Get:17 http://archive.ubuntu.com trusty-security/main Sources [70.1 kB] 
    46.  
    47. Get:18 http://archive.ubuntu.com trusty-security/restricted Sources [1874 B] 
    48.  
    49. Get:19 http://archive.ubuntu.com trusty-security/universe Sources [19.1 kB] 
    50.  
    51. Get:20 http://archive.ubuntu.com trusty-security/main amd64 Packages [229 kB] 
    52.  
    53. Get:21 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [14.8 kB] 
    54.  
    55. Get:22 http://archive.ubuntu.com trusty-security/universe amd64 Packages [98.1 kB] 
    56.  
    57. Fetched 20.3 MB in 41s (490 kB/s) 
    58.  
    59. Reading package lists.。。 Done 
    60.  
    61. Reading package lists.。。 Done 
    62.  
    63. Building dependency tree 
    64.  
    65. Reading state information.。。 Done 
    66.  
    67. The following extra packages will be installed: 
    68.  
    69. libgpm2 libpython2.7 libpython2.7-minimal libpython2.7-stdlib vim-runtime 
    70.  
    71. Suggested packages: 
    72.  
    73. gpm ctags vim-doc vim-scripts 
    74.  
    75. The following NEW packages will be installed: 
    76.  
    77. libgpm2 libpython2.7 libpython2.7-minimal libpython2.7-stdlib vim 
    78.  
    79. vim-runtime 
    80.  
    81. 0 upgraded, 6 newly installed, 0 to remove and 2 not upgraded. 
    82.  
    83. Need to get 9083 kB of archives. 
    84.  
    85. After this operation, 42.9 MB of additional disk space will be used. 
    86.  
    87. Do you want to continue? [Y/n] y 
    88.  
    89. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main libgpm2 amd64 1.20.4-6.1 [16.5 kB] 
    90.  
    91. Get:2 http://archive.ubuntu.com/ubuntu/ trusty/main libpython2.7-minimal amd64 2.7.6-8 [307 kB] 
    92.  
    93. Get:3 http://archive.ubuntu.com/ubuntu/ trusty/main libpython2.7-stdlib amd64 2.7.6-8 [1872 kB] 
    94.  
    95. Get:4 http://archive.ubuntu.com/ubuntu/ trusty/main libpython2.7 amd64 2.7.6-8 [1044 kB] 
    96.  
    97. Get:5 http://archive.ubuntu.com/ubuntu/ trusty/main vim-runtime all 2:7.4.052-1ubuntu3 [4888 kB] 
    98.  
    99. Get:6 http://archive.ubuntu.com/ubuntu/ trusty/main vim amd64 2:7.4.052-1ubuntu3 [956 kB] 
    100.  
    101. Fetched 9083 kB in 51s (175 kB/s) 
    102.  
    103. Selecting previously unselected package libgpm2:amd64. 
    104.  
    105. (Reading database 。。。 11527 files and directories currently installed.) 
    106.  
    107. Preparing to unpack 。。。/libgpm2_1.20.4-6.1_amd64.deb 。。。 
    108.  
    109. Unpacking libgpm2:amd64 (1.20.4-6.1) 。。。 
    110.  
    111. Selecting previously unselected package libpython2.7-minimal:amd64. 
    112.  
    113. Preparing to unpack 。。。/libpython2.7-minimal_2.7.6-8_amd64.deb 。。。 
    114.  
    115. Unpacking libpython2.7-minimal:amd64 (2.7.6-8) 。。。 
    116.  
    117. Selecting previously unselected package libpython2.7-stdlib:amd64. 
    118.  
    119. Preparing to unpack 。。。/libpython2.7-stdlib_2.7.6-8_amd64.deb 。。。 
    120.  
    121. Unpacking libpython2.7-stdlib:amd64 (2.7.6-8) 。。。 
    122.  
    123. Selecting previously unselected package libpython2.7:amd64. 
    124.  
    125. Preparing to unpack 。。。/libpython2.7_2.7.6-8_amd64.deb 。。。 
    126.  
    127. Unpacking libpython2.7:amd64 (2.7.6-8) 。。。 
    128.  
    129. Selecting previously unselected package vim-runtime. 
    130.  
    131. Preparing to unpack 。。。/vim-runtime_2%3a7.4.052-1ubuntu3_all.deb 。。。 
    132.  
    133. Adding ‘diversion of /usr/share/vim/vim74/doc/help.txt to /usr/share/vim/vim74/doc/help.txt.vim-tiny by vim-runtime’ 
    134.  
    135. Adding ‘diversion of /usr/share/vim/vim74/doc/tags to /usr/share/vim/vim74/doc/tags.vim-tiny by vim-runtime’ 
    136.  
    137. Unpacking vim-runtime (2:7.4.052-1ubuntu3) 。。。 
    138.  
    139. Selecting previously unselected package vim. 
    140.  
    141. Preparing to unpack 。。。/vim_2%3a7.4.052-1ubuntu3_amd64.deb 。。。 
    142.  
    143. Unpacking vim (2:7.4.052-1ubuntu3) 。。。 
    144.  
    145. Setting up libgpm2:amd64 (1.20.4-6.1) 。。。 
    146.  
    147. Setting up libpython2.7-minimal:amd64 (2.7.6-8) 。。。 
    148.  
    149. Setting up libpython2.7-stdlib:amd64 (2.7.6-8) 。。。 
    150.  
    151. Setting up libpython2.7:amd64 (2.7.6-8) 。。。 
    152.  
    153. Setting up vim-runtime (2:7.4.052-1ubuntu3) 。。。 
    154.  
    155. Processing /usr/share/vim/addons/doc 
    156.  
    157. Setting up vim (2:7.4.052-1ubuntu3) 。。。 
    158.  
    159. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode 
    160.  
    161. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode 
    162.  
    163. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode 
    164.  
    165. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode 
    166.  
    167. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode 
    168.  
    169. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode 
    170.  
    171. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode 
    172.  
    173. update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in auto mode 
    174.  
    175. Processing triggers for libc-bin (2.19-0ubuntu6.4) 。。。 

    退出容器

    1. root@8c342c0c275c:/# exit 
    2.  
    3. exit 

    当我们输入exit后,容器就停止工作了。只有在指定的/bin/bash命令处于运行状态的时间,容器才会相应地处于运行状态。一旦退出容器,/bin/bash命令也就结束了,这时容器也就停止了。

    查看系统中容器的列表

    1. [root@localhost ~]# docker ps -a 
    2.  
    3. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
    4.  
    5. 8c342c0c275c ubuntu:latest “/bin/bash” 26 minutes ago Exited (0) 5 minutes ago sharp_bohr 

    8c342c0c275c:代表容器的ID,

    ubuntu:latest :创建容器的镜像

    “/bin/bash”  :容器最后执行的命令

    26 minutes ago :创建时间

    Exited (0) 5 minutes :容器退出的状态

    sharp_bohr     :容器的名称

    Docker中容器的命名

    Docker在创建容器时会自动为容器生成一个随机的名称。那么如果我们想在创建一个容器时指定该容器的名称可以使用如下命令:

    1. [root@localhost ~]# docker run --name ovcer_the_container -i -t ubuntu /bin/bash 
    2.  
    3. root@1ce9f640478d:/# 

    上面的命令将会创建一个名为ovcer_the_container的容器。对于一个合法的容器的名称来说只可以包括以下字符:小写字母a~z、大写字母A-Z、数字0~9、下划线、圆点、横线。

    上面就是Linux使用Docker容器的方法介绍了,在使用命令创建Docker容器后,就可以使用命令对Docker容器进行命名了。

本文来源地址:http://www.jb51.net/LINUXjishu/277421.html