一.docker的安装
常用的开发的docker,公司一般有自己的yum
CentOS 7(使用 yum 进行安装
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
安装校验
root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Experimental: false
核心组件
1.镜像:容器创建出来的对象
小例子:你装了一个软件放在c盘就是镜像,当你启动了跑起来了的话他就叫做容器。
2.容器:一个镜像可以启动很多个容器
3.库:保存镜像的地方,就像我们下载engix,tomcat,或者其他的容器的时候,都需要先去把镜像给下载下来,那么下载镜像的时候从哪里下载就是从我们的库里面去下载,其实就是我们的hub.docker.web这个网站去下载,当我们镜像下载下来了之后我们的虚拟机里面就有了这个镜像了,那么下次启动容器的时候就不用再去下载这个镜像了
二.docker的操作
2.1查看容器
docker ps 查看当前正在运行的容器
2.2 查看所有容器
docker ps -a
查看所有容器,在运行和不在运行的都可以查看到
2.2.1容器的参数含义
1. CONTAINER ID
CONTAINER ID是指容器的id,是一个唯一标识符,这是一个64位的十六进制整数,在不会混淆的情况下可以只采用id的前几位进行标识一个容器。
2. IMAGE
IMAGE表示创建容器时使用的镜像。
3. COMMAND
COMMAND表示容器最后运行的命令。
4. CREATED
创建容器的时间。
5. STATUS
容器的状态,这里可能显示一个容器启动时间,也能显示容器关闭时间。具体显示那个要看容器当前的状态。
6. PORTS
容器对外开放的端口。
7. NAMES
容器的名字,如果不设置,会有一个默认的名字。
2.3 查看最新创建的容器
使用
docker ps -l
可以查看最近创建的容器
docker ps -l
2.4查看最新创建的n个容器
docker ps -n=xxx
n=2 查看最新创建的2个容器
n=xxx 查看最新创建的xxx个容器
2.3 创建容器
创建容器整体上来说有两种不同的方式:
1.先创建,再启动
2.可以连创建带启动一步到位
无论是那种方式,流程都是相似的,当执行一个创建命令之后,docker首先会去本地路径下查找是否有相应的镜像,如果没有,就去docker hub上搜索,如果搜索到了,则下载下来,然后利用该镜像创建一个容器并启动
需要注意的是:
容器的文件系统是在只读的镜像文件上添加一层可读写的文件层,这样可以使在不改变镜像的情况下,只记录改变的数据
2.3.1 先创建容器再启动容器
docker create
这个命令创建出来的容器处于停止状态,并没有运行
2.3.1.1 不指定name创建
例如要创建一个nginx容器,创建命令如下:
docker create nginx
创建成功后,可以查看容器是否创建成功:
注意:此时创建的容器并未运行,处于停止状态,容器的name是随机生成的,开发者也可以在创建容器时指定name,如下:
2.3.1.2 指定name
docker create –name=nginx nginx
实际上就是设置一下他的name属性而已并没有什么不同
注意:
1.此时的name属性就不是随机生成的,而是用户指定的name。
2.这种方式只是单纯的创建了一个用户,并未启动
2.3.2 一步创建+启动容器
如果开发者需要既创建又启动容器,则可以使用
docker run 命令
可以启动两种不同模式的容器:
1.后台型容器:后台型容器就是一个在后台运行的容器,默默的在后台执行计算就行了,不需要和开发者进行交互.
2.交互型容器:接收开发者的输入进行处理给出反馈
注意:对于开发者而言,大部分情况下创建的都是后台型容器,不过在很多时候,即使是后台型容器也不可避免的需要进行交互
2.3.2.1 后台型容器
后台型容器以nginx为例,一般nginx在后台运行即可
docker run –name houtai -d -p 8080:80 nginx
–name含义和上文一样,表示创建的容器的名字
-d表示容器在后台运行
-p表示将容器的80端口映射到宿主机的8080端口
这种创建方法:
1.首先依旧是检查本地有无相应的容器,有直接启动
2.没有就去docker hub查找,查到到下载,然后运行,并且生成了一个容器的id
3.运行成功后我们在浏览器中输入
http://localhost:8080
就能看到nginx的默认界面
2.3.2.2 交互型容器
ubuntu容器是我们常见的交互形容器交互型容器
交互型容器创建方式如下:
docker run –name jiaohuubuntu -it ubuntu /bin/bash
–name含义和上文一样,表示创建的容器的名字
-it参数,i表示开发容器的标准输入(STDIN),t则表示告诉docker,为容器创建一个命令行终端
注意:
该命令执行完后,会打开一个输入终端
退出终端,只需要输入exit命令