您的位置:首页 > 运维架构 > Docker

Docker基础入门实践

2016-02-22 16:43 302 查看

基本概念

Docker三个基本概念

镜像(Image)

容器(Container)

仓库(Repository)

镜像

镜像可以理解为只读模板,如包含一个centos操作系统环境

容器

Docker利用容器来隔离和运行应用,容器是从镜像创建的运行实例

注:镜像是只读的,容器在启动时创建一层可写层做为最上层

仓库

集中存放镜像文件的地方

Docker安装

CentOS安装Docker

CentOS6

$ yum install epel-release
$ yum -y remove docker
$ yum install docker-io

CentOS7

$ yum install docker

启动

$ service docker start

随系统自启动

$ chkconfig docker on

帮助

输入
$ docker
会列表相关命令和介绍如何查看帮助

镜像

获取镜像

$ docker pull registry.aliyuncs.com/acs-sample/centos

镜像地址格式为[REGISTRYHOST/][USERNAME/]NAME[:TAG]

注册服务器:registry.aliyuncs.com

仓库:acs-sample/centos

标记:lastest

查看镜像

$ docker images

出现如下信息

REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs-sample/centos   latest              bf8055dc372f        6 weeks ago         196.6 MB


仓库:来自哪个仓库

标记:通过tag来区分版本,如centos6、centos7

唯一ID

创建时间

大小

创建镜像

可以从DockHub获取已有镜像或通过dockerfile来创建

修改镜像

通过
docker commit
来实现

步骤:

1.启动容器

$ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash
[root@1ca39db81ee1 /]#

2.安装wget,成功exit退出

$ yum install wget

3.提交更改,如果不指定tag会覆盖原有镜像

$ docker commit -m 'add wget' -a 'by xqh' 1ca39db81ee1 registry.aliyuncs.com/acs-sample/centos:2```

4.查看镜像,tag=2的包含wget的镜像已经生成

REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs-sample/centos   2                   1ca39db81ee1        57 seconds ago      255.7 MB

**修改Tag**

$ docker tag registry.aliyuncs.com/acs-sample/centos:2 test```

REPOSITORY                                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs-sample/centos   2                   1ca39db81ee1        16 minutes ago      255.7 MB
test                                      latest              1ca39db81ee1        16 minutes ago      255.7 MB

上传镜像

把自己的镜像通过
docker push
上传到仓库

导出和导入

$ docker save -o centos-test.tar registry.aliyuncs.com/acs-sample/centos:2
$ docker load -i centos-test.tar

删除镜像

docker rm
来移除本地镜像,移除镜像前要先移除依赖这个镜像的容器

容器

新建并启动

新建并启动
docker run
,如

$ docker run -it --name test registry.aliyuncs.com/xqh/centos6 /bin/bash

其中
-t
选项让docker分配一个伪终端,
-i
让容器的标准输入保持打开

启动已终止容器

docker start
来启动一个已经停止的容器

后台运行容器

docker run -d
来实现,如

$ docker run -d --name test registry.aliyuncs.com/acs-sample/centos /bin/sh -c "while true; do echo hello world; sleep 1; done"

docker ps
来查看启动容器信息

[root@iZ23g3sxtunZ ~]# docker ps
CONTAINER ID        IMAGE                                     COMMAND                CREATED             STATUS              PORTS               NAMES
f23f49f7269c        registry.aliyuncs.com/acs-sample/centos   "/bin/sh -c 'while t   3 seconds ago       Up 2 seconds                            test

docker logs
来查看容器输出信息

[root@iZ23g3sxtunZ ~]# docker logs test
hello world
hello world
hello world

终止容器

通过
docker stop
来终止容器,如

$ docker stop test

docker ps -a
可以查看终止状态的容器

[root@iZ23g3sxtunZ ~]# docker ps -a
CONTAINER ID        IMAGE                                     COMMAND                CREATED             STATUS                       PORTS               NAMES
f23f49f7269c        registry.aliyuncs.com/acs-sample/centos   "/bin/sh -c 'while t   4 minutes ago       Exited (137) 4 seconds ago                       test

进入容器

docker attach
进入容器当中

导入和导出

docker export
docker import
导出和导入容器

删除容器

docker rm
来删除一个终止状态的容器

仓库

登录

登录官方仓库不需要指定地址

$ docker login
$ docker login --username=xxx@aliyun.com registry.aliyuncs.com

搜索镜像

docker search
命令查看仓库中的镜像,如查询被收藏10次以上的centos镜像

[root@iZ23g3sxtunZ ~]# docker search -s 10 centos
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                          The official build of CentOS.                   1947      [OK]
jdeathe/centos-ssh              CentOS-6 6.7 x86_64 / SCL/EPEL/IUS Repos /...   15                   [OK]
jdeathe/centos-ssh-apache-php   CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...   13                   [OK]

下载和上传镜像

docker pull
docker push
命令来下载和推送镜像,如

$ docker pull registry.aliyuncs.com/xqh/centos6-sshd
$ docker push registry.aliyuncs.com/xqh/centos6-sshd

私有仓库

指用户搭建一个本地仓库供私人使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: