docker(一) 安装与创建容器

  • Post author:
  • Post category:其他




一.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命令

在这里插入图片描述



版权声明:本文为weixin_43189971原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。