01docker简单使用和配置(容器、镜像)

本文介绍了Docker的基本操作,包括如何在容器中运行应用程序,如`hello world`和交互式Bash shell。讨论了如何在后台运行容器,以及如何通过端口映射运行web服务器。还涵盖了容器的导入、导出,镜像的创建、拉取、搜索和删除等。最后,讲解了Dockerfile和如何基于它构建镜像。
摘要由CSDN通过智能技术生成

一:容器中运行简单应用程序

1:hello  world

        使用docker可以在容器中运行应用程序,使用docker run命令即可。比如下面的命令:

$ docker run ubuntu /bin/echo 'Hello world'
Hello world

         docker run命令用于运行一个新的容器,ubuntu指定了该容器运行基于的镜像是Ubuntu操作系统镜像。指定镜像后,Docker首先在Docker主机本地寻找镜像,如果找不到则去公共镜像仓库:Docker Hub下载。

         接下来,就是指定要在新容器中运行的命令:/bin/echo  'Hello  world'。

         运行该容器时,Docker创建一个新的Ubuntu操作系统环境,并且在其中执行/bin/echo命令,然后将命令结果输出到终端。

         这种情况下,容器只有在运行命令时处于running状态,一旦命令执行完成,输出” Hello world”之后,该容器也就停止运行了。

 

2:交互式的容器

         运行以下命令:

$ docker run -t -i ubuntu /bin/bash
root@af8bae53bdd3:/#

         还是以ubunt为基础镜像,这次运行的命令是/bin/bash,在容器中加载一个BASH  shell。docker命令中多了两个选项:-t和-i,-t用于在容器中分配一个新的终端,-i使得用户可以与容器进行交互。

         因此,容器加载后,就可以在容器中执行其他命令了:

root@af8bae53bdd3:/# pwd
/
root@af8bae53bdd3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@af8bae53bdd3:/# exit

         可见,在容器中,当前处于根目录下,并且根目录的结构就是典型的Linux文件系统。

         运行exit退出当前shell,Bash shell进程也就停止了,因此容器也就停止运行了。

 

3:后台运行容器

         使用以下命令,可以在后台运行容器:

$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147

         这里使用-d选项,将容器置于后台运行,使其成为daemon进程。

         这里在容器中运行的程序是一个在/bin/sh中,每隔1s打印一次hello  world的程序。

         运行该命令后,返回的是一个容器ID,利用该容器ID,可以使用docker ps命令,查看当前处于运行状态的容器:

$ docker ps
CONTAINER ID  IMAGE         COMMAND               CREATED        STATUS       PORTS NAMES
1e5535038e28  ubuntu  /bin/sh -c 'while tr  2 minutes ago  Up 1 minute        insane_babbage

         可见,刚刚运行的容器处于UP状态,该命令还列出了刚刚容器的名字:insane_babbage,可以根据该名字,使用docker logs命令可以得到容器的标准输出。查看容器中的命令输出:

$ docker logs insane_babbage
hello world
hello world
hello world
. . .

     

         使用docker  stop命令,可以停止该容器:

$ docker stop insane_babbage
insane_babbage

         再次使用docker ps命令查看,发现已经没有容器运行了:

$ docker ps
CONTAINER ID  IMAGE         COMMAND               CREATED        STATUS       PORTS NAMES

 

二:容器中运行实际应用

1:docker客户端

         每次在shell中使用docker命令,实际上是启动了一个docker客户端,docker客户端连接docker服务器,由服务器执行相应的命令。可以使用docker version命令,查看当前主机上安装的docker客户单和docker服务器版本:

[hh_93_197 /]# docker version
Client:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 15:39:25 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.3
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   20f81dd
 Built:        Thu Mar 10 15:39:25 2016
 OS/Arch:      linux/amd64


2:查看docker命令帮助信息

         可以使用命令docker --help,查看docker帮助信息,也可以使用--help,查看docker子命令的帮助信息,比如:

[hh_93_197 /]# docker run --help

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

  -a, --attach=[]                 Attach to STDIN, STDOUT or STDERR
  --add-host=[]                   Add a custom host-to-IP mapping (host:ip)
  --blkio-weight                  Block IO (relative weight), between 10 and 1000
  --blkio-weight-device=[]        Block IO weight (relative device weight)
  --cpu-shares                    CPU shares (relative weight)
  --cap-add=[]                    Add Linux capabilities
  --cap-drop=[]                   Drop Linux capabilities
  ...


3:在docker中运行web服务器

         使用以下命令,可以在容器中运行一个python的web服务器:

$ docker run -d -P training/webapp python app.py

         这里使用的镜像是training/webapp,其中包含了简单的Python flask web应用。-d选项使容器后台运行,-P选项将容器中的端口映射到主机上的端口,后续会详细解释。

 

4:查看容器

         使用docker ps命令查看刚刚运行的容器:

[hh_93_197 /]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
026fcbe4b3dd        training/webapp     "python app.py"     23 hours ago        Up 3 seconds        0.0.0.0:32770->5000/tcp   stoic_davinci
 

         docker ps命令,加上-l选项,可以列出最后一个启动的容器,docker ps命令只能列出运行状态的容器,通过-a选项,可以列出所有状态的容器。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值