今天这篇文章我们主要来了解一下容器的一些基本用法。
Docker目前主要有两个版本,社区版(Community Edition(CE))与企业版(Enterprise Edition(EE)),本章节我们主要讲解Ubuntu系统安装Docker的步骤,如果其它系统安装Docker请参照官方网站。
首先更新 apt 软件包数据库,以确保软件包列表是最新的。具体命令如下:
1. apt-get update
接着安装一些软件包,以允许 apt通过 HTTPS 使用存储库:
1. apt-get -y install apt-transport-https ca-certificates curl software-properties-common
我们添加阿里云提供的镜像源以便于加快国内安装速度,先添加GPG 密钥:
1. curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
再添加相应源的信息:
1. add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
接着我们再次根据新的镜像源更新索引:
1. apt-get update
最后我们执行安装命令
1. apt-get install docker-ce
完成安装后我们查看一下我们安装的docker版本信息,命令如下:
1. 启动docker服务
2. systemctl start docker
3.
4. 守护进程重启
5. systemctl daemon-reload
6.
7. 重启docker服务
8. systemctl restart docker
9. service docker restart
10.
11. 关闭docker服务
12. service docker stop
13. systemctl stop docker
1)阿里docker镜像配置
镜像存储中的核心概念仓库(Repository)是镜像存储的位置。Docker 注册服务器(Registry)是仓库存储的位置。每个仓库包含不同的镜像。Docker Hub 是 Docker 官方提供的公共仓库,提供大量的常用镜像,但由于国内网络问题,拉取 Docker Hub 的速度非常慢,好在阿里云提供了镜像加速器。下面我们来看看怎么配置阿里镜像加速器。
首先我们需要编辑 /etc/docker/daemon.json 文件,如下图所示:
然后在修改之后,需要重启 Docker 服务,让修改生效。使用如下命令
1. service docker restart
2)拉取镜像
从镜像仓库拉取镜像的命令如下:
1. # 新版本的命令格式
2. docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
3. 4. # 旧的命令格式如下: 5. docker pull [OPTIONS] NAME[:TAG|@DIGEST]
比较常用的配置参数为 -a,代表下载仓库中的所有镜像,即下载整个存储库。
我们拉取一个ubuntu 16.04版本的镜像,具体操作如下:
3)搜索镜像
如果我们不知道需要下载的镜像有哪些版本可以通过镜像搜索命令来查询,具体命令如下:
1. docker search 镜像名称
我们查看一下ubuntu镜像有哪些版本具体操作如下:
4)查看镜像列表
镜像的查看可以使用如下命令:
1. # 新版本命令
2. docker image ls
3.
4. # 旧的命令格式如下:
5. docker images
也可以查看指定的镜像,例如。查看 ubuntu 的镜像:
如上图其中REPOSITORY为镜像名称,TAG为镜像版本, IMAGE ID为镜像的ID
5)查看镜像详细信息
查看镜像详细信息的命令如下所示,直接用docker inspect命令也同时可以查看容器的详细信息:
1. # 新版本命令
2. docker image inspect ubuntu
3.
4. # 旧的命令格式如下:
5. docker inspect ubuntu
6)构建镜像
对于我们pull的新镜像ubuntu:16.04来说,如果我们需要对其进行更新,可以创建一个容器,在容器中进行修改,然后将修改提交到一个新的镜像中。提交修改使用如下命令:
1. # 新版本命令
2. docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
3. 4. # 旧的命令格式如下: 5. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
我们将在将我们下载的新镜像ubuntu:16.04安装一个net-tools工具(默认不带)然后进行commit创建一个新的镜像,具体操作如下:
7)BUILD镜像
Docker 可以从一个 Dockerfile 文件中自动读取指令构建一个新的镜像。 Dockerfile 是一个包含用户构建镜像命令的文本文件。在创建该文件后,我们可以使用如下命令构建镜像:
1. docker image build [OPTIONS] PATH | URL
对于一个 Dockerfile 文件内容来说,基本语法格式如下所示:
1. INSTRUCTION arguments
使用 # 号作为注释,指令(INSTRUCTION)不区分大小写,但是为了可读性,一般将其大写。而 Dockerfile 的指令一般包含下面几个部分:
a.基础镜像:以哪个镜像为基础进行制作,使用 FROM 指令来指定基础镜像,一个 Dockerfile 必须以 FROM 指令启动。
b.维护者信息:可以指定该 Dockerfile 编写人的姓名及邮箱,使用 MAINTAINER 指令。
c.镜像操作命令:对基础镜像要进行的改造命令,比如安装新的软件,进行哪些特殊配置等,常见的是 RUN 命令。
d.容器启动命令:基于该镜像的容器启动时需要执行哪些命令,常见的是 CMD 命令或 ENTRYPOINT
例如一个最基本的 Dockerfile:
1. # 指定基础镜像
2. FROM new_ubuntu_16.04:new
3. 4. # 维护者信息 5. MAINTAINER chenge
6. 7. # 镜像操作命令 8. RUN
9. apt-get -yqq update &&
10. apt-get install -yqq Apache2
11. 12. # 容器启动命令 13. CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
如上其中 FROM 指定基础镜像。RUN 命令默认使用 /bin/sh,并使用 root 权限执行。CMD 命令也是默认在 /bin/sh 中执行,但是只能有一条 CMD 指令,如果有多条则只有最后一条会被执行。然后我们来通过这个dockerfile文件build镜像,具体如下:
8)删除镜像
删除docker镜像很简单具体命令如下:
1. # 新版本命令
2. docker image rm 镜像名称/ID
3.
4. # 旧的命令格式如下:
5. docker rmi 镜像名称/ID
我们删除ubuntu:16.04这个镜像具体操作如下:
以上就是我们Docker基本用法的全部内容了,如果大家喜欢不要忘了为@IT管理局点赞、关注与转发哦!