docker安装和基本操作
Posted fondwang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker安装和基本操作相关的知识,希望对你有一定的参考价值。
简介
docker的三个基本概念
镜像(Image)
Docker
镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
容器(Container)
容器
(container)
的定义和镜像(image)
几乎一模一样,是指image的运行时,包含了文件资源(image展开)和系统资源(变成process存在于系统中)
仓库(Repository)
Docker
仓库是集中存放镜像文件的场所。
Docker
使用 C/S
结构,即客户端/服务器体系结构。 Docker
客户端与 Docker
服务器进行交互,Docker服务端负责构建、运行和分发 Docker
镜像。
Docker
客户端和服务端可以运行在一台机器上,也可以通过 RESTful
、 stock
或网络接口与远程 Docker
服务端进行通信。
这张图展示了 Docker
客户端、服务端和 Docker
仓库(即 Docker Hub
和 Docker Cloud
),默认情况下Docker
会在 Docker
中央仓库寻找镜像文件,这种利用仓库管理镜像的设计理念类似于 Git
,当然这个仓库是可以通过修改配置来指定的,甚至我们可以创建我们自己的私有仓库。
Docker
的核心组件包括:
- Docker Client:
Docker
客户端。它其实就是 Docker
提供命令行界面 (CLI)
工具,是许多 Docker
用户与 Docker
进行交互的主要方式
- Docker daemon:
服务器组件,以 Linux
后台服务的方式运行,是 Docker
最核心的后台进程,我们也把它称为守护进程。它负责响应来自 Docker Client
的请求,然后将这些请求翻译成系统调用完成容器管理操作。
- Docker Image:
Docker
镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。我们可将 Docker
镜像看成只读模板,通过它可以创建 Docker
容器。
镜像有多种生成方法:
- 从无到有开始创建镜像
- 下载并使用别人创建好的现成的镜像
- 在现有镜像上创建新的镜像
- Docker Registry
Docker registry
是存储 docker image
的仓库,它在 docker
生态环境中的位置如下图所示:
- Docker Container
Docker
容器就是 Docker
镜像的运行实例,是真正运行项目程序、消耗系统资源、提供服务的地方。
一、安装docker
Docker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上
1. uname -an 查看当前系统版本
2. yum -y install docker 下载安装docker
3. service docker start 启动docker服务
4. docker version 检查docker是否安装成功.查看docker的版本号,包括客户端、服务端、依赖的Go等
当看到下图的信息,就是表示本机docker已经安装成功
chkconfig docker on: 加入开机启动
docker info:查看系统(docker)层面信息,包括管理的images, containers数等
二、镜像操作
创建容器要以镜像为基础,所以先讲下docker镜像操作
1. 查看镜像
docker images :查看下本地镜像
docker images -a : 列出所有的images(包含历史)
2. 搜索镜像
docker search <image>:可以指定具体版本进行下载。 如:docker search java -->在docker中搜索java
3. 下载镜像
docker pull <image> : 下载对应的images
如: docker pull docker.io/nginx 下载nginx
下载到本地的镜像要比docker Hub上搜索出来的要大,因为下载过程中自动解压了,在查看镜像列表就有了刚才下载的镜像
列表包含了仓库名,版本标签,镜像ID,创建时间以及所占用的空间
4. 容器的使用
# 使用镜像创建容器
1. docker run -i -t sauloal/ubuntu14.04
2. docker run -i -t sauloal/ubuntu14.04 /bin/bash # 创建一个容器,让其中运行 bash 应用,退出后容器关闭
3. docker run -itd --name centos_aways --restart=always centos #创建一个名称centos_aways的容器,自动重启
# --restart参数:always始终重启;on-failure退出状态非0时重启;默认为,no不重启
# 查看容器
docker ps :列出当前所有正在运行的container
docker ps -l :列出最近一次启动的container
docker ps -a :列出所有的container(包含历史,即运行过的container)
docker ps -q :列出最近一次运行的container ID
# 再次启动容器
docker start/stop/restart <container> #:开启/停止/重启container
docker start [container_id] #:再次运行某个container (包括历史container)
#进入正在运行的docker容器
docker exec -it [container_id] /bin/bash
docker run -i -t -p <host_port:contain_port> #:映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。
# 删除容器
docker rm <container...> #:删除一个或多个container
docker rm -f container_nginx 容器删除
docker rm `docker ps -a -q` #:删除所有的container
docker ps -a -q | xargs docker rm #:同上, 删除所有的container??????
# 停止容器
docker stop container_nginx 或者是容器的id
docker start 、 docker run 、docker create 的区别
docker run 和 docker create 参数基本一样,docker run 相当于docker create 和 docker start
docker create:只创建容器。
docker start 启动一个已经创建的容器
docker run 创建容器并后台启动
参考: https://blog.csdn.net/deng624796905/article/details/86493330
https://blog.csdn.net/fgf00/article/details/51893771
以上是关于docker安装和基本操作的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段
Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段