Docker安装及使用

docker安装

    使用阿里云centOs 7.4下

    #查看当前系统版本

    uname -r

    显示:3.10.0-693.2.2.el7.x86_64

    #安装

    yum -y install docker

    #等待安装完成

安装完成

启动docker服务

service docker start

查看docker实例进程

docker ps

还未创建docker容器

运行测试

docker run hello-world

说明安装成功。

 

docker的使用:

    输入命令:docker

    看到docker 客户端的所有命令选项

     例如要查看命令 docker ps的命令选项输入:

        docker ps --help

      

使用docker容器

运行一个Python测试web

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

参数说明:
-d:让容器在后台运行。

-P:将容器内部使用的网络端口映射到我们使用的主机上。

查看我们正在使用的容器

docker ps

可以看到容器的5000端口已被映射到32768端口,访问:

<span style="color:#000000">curl http://127.0.0.1:32768</span>

当然也可以用-p命令指定映射端口,

<span style="color:#000000">docker run -d -p 8081:5000 training/webapp python app.py</span>

 

<span style="color:#000000">curl http://127.0.0.1:8081</span>

docker ps 查看:

 

 

网络端口的快捷方式

通过docker ps 命令可以查看到容器的端口映射,docker还提供了另一个快捷方式:docker port,使用 docker port 可以查看指定 (ID或者名字)容器的某个确定端口映射到宿主机的端口号。

上面我们创建的web应用容器ID为:f26573a5163e名字为:awesome_wilson

 

我可以使用docker port f26573a5163e或docker port awesome_wilson来查看容器端口的映射情况

 

 

docker logs [ID或者名字] 可以查看容器内部的标准输出。

[root@stu ~]# docker logs -f a5aa660c9e4b
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

 

我们还可以使用 docker top 来查看容器内部运行的进程

 

[root@stu~]# docker top a5aa660c9e4b
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                13978               13947               0                   14:20               ?                   00:00:00            python app.py

使用 docker inspect 来查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

[root@stu~]# docker inspect a5aa660c9e4b

停止WEB应用容器

[root@stu ~]# docker stop f26573a5163e

f26573a5163e

重启WEB应用容器

[root@stu~]# docker start f26573a5163e
f26573a5163e

docker ps -l 查询最后一次创建的容器:

[root@stu~]# docker ps -l 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
f26573a5163e        training/webapp     "python app.py"     15 minutes ago      Up About a minute   0.0.0.0:8081->5000/tcp   awesome_wilson

正在运行的容器,我们可以使用 docker restart 命令来重启

 

我们可以使用 docker rm 命令来删除不需要的容器

删除容器时,容器必须是停止状态,否则会报如下错误:

[root@izwz91s2rh7xf6w39lnc4sz ~]# docker rm  f26573a5163e
Error response from daemon: You cannot remove a running container f26573a5163ed217f1c8172120239d75718ff31b80af3f3e9be4923b4a47207b. Stop the container before attempting removal or use -f

Docker 镜像使用

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

下面我们来学习:

  • 1、管理和使用本地 Docker 主机镜像
  • 2、创建镜像

我们可以使用 docker images 来列出本地主机上的镜像。

[root@stu ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
docker.io/hello-world       latest              f2a91732366c        4 months ago        1.85 kB
docker.io/training/webapp   latest              6fae60ef3446        2 years ago         349 MB

各个选项说明:

  • REPOSITORY:表示镜像的仓库源

  • TAG:镜像的标签

  • IMAGE ID:镜像ID

  • CREATED:镜像创建时间

  • SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

创建ubuntu镜像

docker run ubuntu:15.10 /bin/echo "Hello world"

获取一个新的镜像
当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。

docker pull ubuntu:15.10

查找镜像
我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

 

我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。

 

[root@izwz91s2rh7xf6w39lnc4sz ~]# docker search httpd
INDEX       NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/httpd                                   The Apache HTTP Server Project                  1583      [OK]       
docker.io   docker.io/hypriot/rpi-busybox-httpd               Raspberry Pi compatible Docker Image with ...   40                   
docker.io   docker.io/centos/httpd                                                                            15                   [OK]
docker.io   docker.io/centos/httpd-24-centos7                 Platform for running Apache httpd 2.4 or b...   9                    
docker.io   docker.io/armhf/httpd                             The Apache HTTP Server Project                  8                    
docker.io   docker.io/macadmins/netboot-httpd                 use in combination with bruienne/bsdpy          4                    [OK]
docker.io   docker.io/lolhens/httpd                           Apache httpd 2 Server                           2                    [OK]
docker.io   docker.io/salim1983hoop/httpd24                   Dockerfile running apache config                2                    [OK]
docker.io   docker.io/epflidevelop/os-wp-httpd                WP httpd                                        1                    [OK]
docker.io   docker.io/fboaventura/dckr-httpd                  Small footprint http server to use with ot...   1                    [OK]
docker.io   docker.io/lead4good/httpd-fpm                     httpd server which connects via fcgi proxy...   1                    [OK]
docker.io   docker.io/rgielen/httpd-image-php5                Docker image for Apache httpd with PHP 5 b...   1                    [OK]
docker.io   docker.io/rgielen/httpd-image-simple              Docker image for simple Apache httpd based...   1                    [OK]
docker.io   docker.io/tplatform/aws-linux-httpd24-php71-fpm   aws-linux-httpd24-php71-fpm                     1                    [OK]
docker.io   docker.io/dockerpinata/httpd                                                                      0                    
docker.io   docker.io/efrecon/httpd                           A micro-sized httpd. Start serving files i...   0                    [OK]
docker.io   docker.io/fintaffy/fintaffy-httpd                                                                 0                    
docker.io   docker.io/interlutions/httpd                      httpd docker image with debian-based confi...   0                    [OK]
docker.io   docker.io/jbpt/httpd                                                                              0                    [OK]
docker.io   docker.io/manageiq/httpd                          Container with httpd, built on CentOS for ...   0                    [OK]
docker.io   docker.io/manasip/httpd                                                                           0                    
docker.io   docker.io/ppc64le/httpd                           The Apache HTTP Server Project                  0                    
docker.io   docker.io/publici/httpd                           httpd:latest                                    0                    [OK]
docker.io   docker.io/tplatform/aws-linux-httpd24-php70       aws-linux-httpd24-php70                         0                    [OK]
docker.io   docker.io/trollin/httpd                      


NAME:镜像仓库源的名称
DESCRIPTION:镜像的描述

 

OFFICIAL:是否docker官方发布

 

拖取镜像

我们决定使用上图中的httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。

docker pull httpd

我的阿里云主机只有1m带宽,比较慢,就不截图了。

下载完成后,我们就可以使用这个镜像了。

docker run httpd

创建镜像
当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
1.从已经创建的容器中更新镜像,并且提交这个镜像

 

2.使用 Dockerfile 指令来创建一个新的镜像

 

更新镜像

更新镜像之前,我们需要使用镜像来创建一个容器。

在运行的容器内使用 apt-get update 命令进行更新。
在完成操作之后,输入 exit命令来退出这个容器。
此时ID为f26573a5163e的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。
docker commit -m="has update" -a="root"f26573a5163e  root/ubuntu:v2
sha256:e26ca7cb3674a03a71875675f442100670413682c978713217567b9253a2103e
各个参数说明:
-m:提交的描述信息
-a:指定镜像作者
e218edb10161:容器ID
runoob/ubuntu:v2:指定要创建的目标镜像名

我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2:

查看 docker images

[root@stu ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
root/ubuntu                 v2                  e26ca7cb3674        28 seconds ago      349 MB
docker.io/hello-world       latest              f2a91732366c        4 months ago        1.85 kB
docker.io/training/webapp   latest              6fae60ef3446        2 years ago         349 MB

构建镜像
我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值