赞
踩
Docker 在软件 Docker 是一个开源项目,为开发者和系统管理员提供了一个开放的平台,在任何地方通过打包和运行应用程序作为一个轻量级的容器。容器内自动部署应用程序。Docker 最开始由 Solomon Hykes 作为 dotCloud 一个内部开发项目,一个企业级的 PaaS (platform as a service 服务平台),该软件现在由 Docker 社区和 Docker 公司维护,更多 Docker 信息可以访问:Docker Documentation | Docker Documentation。
我们可以通过 Docker 官方提供的 KVM 与 Docker 的图片更加形象的知道什么是 Docker。
1.2.1 镜像(Docker Image)
Docker 镜像(Image)是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。
1.2.2 容器(Docker Container)
Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的
1.2.3 仓库(Docker Repository)
仓库(Repository)是集中存放镜像文件的场所。仓库分为公开仓库(Public)和私有仓库(Private)两种形式,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。
仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
- uname -a
- cat /etc/lsb-release
可以知道我们的ubuntu版本为18.04.3,操作系统为64位的linux操作系统。
由于第一次安装时看的教程太老,安装版本太旧,故先把之前的旧版本(docker.io)卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository \
- "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
- $(lsb_release -cs) \
- stable"
apt-cache madison docker-ce
我选择直接安装最新版,也可以选择安装特定版本。
sudo docker run hello-world
3.1.1 列出镜像
sudo docker images
- REPOSITORY:表示镜像的仓库源
- TAG:镜像的标签
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
3.1.2 获取镜像
当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。
sudo docker pull ubuntu:13.10
下载完成后,我们可以直接使用这个镜像来运行容器。
3.1.3 查找镜像
我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: Docker Hub,我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。
sudo docker search httpd
- NAME: 镜像仓库源的名称
- DESCRIPTION: 镜像的描述
- OFFICIAL: 是否 docker 官方发布
- stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
- AUTOMATED: 自动构建。
3.1.4 拖取镜像
我们决定使用上图中的 httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。
sudo docker pull httpdUsing default tag: latest
下载完成后,我们就可以使用这个镜像了。
sudo docker run httpd
3.1.5 删除镜像
镜像删除使用 docker rmi 命令,比如我们删除 hello-world 镜像:
sudo docker rmi hello-world
3.1.6 创建镜像
当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
- 从已经创建的容器中更新镜像,并且提交这个镜像
- 使用 Dockerfile 指令来创建一个新的镜像
3.1.7 设置镜像标签
我们可以使用 docker tag 命令,为镜像添加一个新的标签。
sudo docker tag 860c279d2fec runoob/centos:dev
docker tag 镜像ID(860c279d2fec) 、用户名称(runoob)、镜像源名(centos)和新的标签名(dev)。
3.2.1 Docker 客户端
docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。
3.2.2 启动容器
sudo docker run -it ubuntu /bin/bash
- -i: 交互式操作。
- -t: 终端。
- ubuntu: ubuntu 镜像。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
退出终端直接输入exit()。
3.2.3 启动已停止运行的容器
查看所有的容器命令如下:
sudo docker ps -a
使用 docker start 启动一个已停止的容器:
3.2.4 后台运行
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
sudo docker run -itd --name ubuntu-test ubuntu /bin/bash
3.2.5 停止容器
停止容器的命令如下:
sudo docker stop <容器 ID>
停止的容器可以通过 docker restart 重启:
docker restart <容器 ID>
3.2.6 进入容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
docker attach
docker attach 1e560fca3906
docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
docker exec -it 243c32535da7 /bin/bash
3.2.7 删除容器
删除容器使用 docker rm 命令:
sudo docker rm -f 1e560fca3906
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。