Docker安装及基本命令

Centos7安装Docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

我们平时用社区版就足够了。所以我们安装社区版;

我们主要参考:https://docs.docker.com/install/linux/docker-ce/centos/  来安装;

 

我们切换到root用户

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

uname -r

 

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum update

 

3、卸载旧版本(如果安装过旧版本的话)

yum remove docker  docker-common docker-selinux docker-engine

 

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

 

5、设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

6,安装最新版本的Docker

yum install docker-ce docker-ce-cli containerd.io

 

7,启动Docker并设置开机启动

systemctl start docker

systemctl enable docker

 

8,验证Docker

docker version

 

说明安装成功

 

9,Docker HelloWorld测试;

docker run hello-world

 

默认的远程仓库 https://hub.docker.com/ 网速稀烂

配置下阿里云的镜像仓库

因为本地没有这个镜像,所以从远程官方仓库去拉取,下载;

然后我们再执行一次;

就OK了

 

阿里云镜像仓库

Docker默认远程仓库是https://hub.docker.com/

我们下载一个大点的东西,龟速

由于是国外主机,类似Maven仓库,慢得一腿,经常延迟,破损;

所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点;

 

配置步骤如下:

1,登录进入阿里云镜像服务中心,获取镜像地址

进入阿里云容器镜像服务地址:

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

 

这里我们获取镜像地址;

 

2,在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入

{

 "registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]

}

 

3,重启daemon

systemctl daemon-reload

 

4,重启docker服务

systemctl restart docker

 

5,测试

由于速度太快,截图都难

 

Docker基本命令

1、Docker基本命令

2、Docker镜像常用命令

3、Docker 容器常用命令

启动Docker

systemctl start docker

 

停止Docker

systemctl stop docker

 

重启Docker

systemctl restart docker

 

开机启动Docker

systemctl enable docker

 

查看Docker概要信息

docker info

 

查看Docker帮助文档

docker --help

 

查看Docker版本信息

docker version

Docker镜像常用命令

1,docker images 列出本机所有镜像

docker images

列出本机所有镜像

 

REPOSITORY

镜像的仓库源

TAG

镜像的标签(版本)同一个仓库有多个TAG的镜像,多个版本;我们用REPOSITORY:TAG来定义不同的镜像;

IMAGE ID

镜像ID,镜像的唯一标识

CREATE

镜像创建时间

SIZE

镜像大小

OPTIONS 

可选参数:

-a

显示所有镜像(包括中间层)

-q

只显示镜像ID

-qa

可以组合

--digests

显示镜像的摘要信息

--no-trunc

显示完整的镜像信息 

 

2,docker search 搜索镜像

 

和 https://hub.docker.com/ 这里的搜索效果一样 v、;;;;;;;;;

OPTIONS可选参数:

--no-trunc

显示完整的镜像描述

-s

列出收藏数不小于指定值的镜像

--automated

只列出Docker Hub自动构建类型的镜像

 

 

3,docker pull 下载镜像

 

docker pull 镜像名称:[TAG]

 

注意:不加TAG,默认下载最新版本latest

 

4,docker rmi 删除镜像

 

1,删除单个:docker rmi 镜像名称:[TAG]

 

如果不写TAG,默认删除最新版本latest

 

有镜像生成的容器再运行时候,会报错,删除失败;

 

 

我们需要加 -f 强制删除

2,删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]

中间空格隔开

3,删除全部:docker rmi -f $(docker images -qa)

 

Docker 容器常用命令

1、Docker创建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

 

--name="容器新名字":为容器指定一个名称;

-i:以交互模式运行容器,通常与-t或者-d同时使用;

-t:为容器重新分配一个伪输入终端,通常与-i同时使用;

-d: 后台运行容器,并返回容器ID;

-P: 随机端口映射,容器内部端口随机映射到主机的端口

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

 

 启动普通容器: docker run --name 别名 镜像ID  

 启动交互式容器:  docker run -it --name 别名 镜像ID   来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;

 

sudo service network restart

 

 

2、Docker列出容器

docker ps [OPTIONS]

 

OPTIONS说明:

-a :显示所有的容器,包括未运行的。

-f :根据条件过滤显示的内容。

--format :指定返回值的模板文件。

-l :显示最近创建的容器。

-n :列出最近创建的n个容器。

--no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小。

 

docker ps 查看正在运行的容器

docker ps -a 查看所有容器

docker ps -n 2  显示最近创建的2个容器

docker ps -f status=exited 查看停止的容器

 

2、Docker退出容器

 

exit 容器停止退出

ctrl+P+Q 容器不停止退出

 

 

3、Docker进入容器

a、docker attach 容器ID or 容器名 

 

 

b、Docker进入容器执行命令

docker exec -it 容器名称 或者 容器ID 执行命令

 

Docker启动容器

docker start 容器ID or 容器名

 

 

Docker重启容器

 

docker restart 容器ID or 容器名

 

 

Docker停止容器

 

docker stop 容器ID or 容器名

 

Docker删除容器

docker rm 容器ID 

删除多个容器 

docker rm -f 容器ID1  容器ID2 中间空格隔开

 

删除所有容器

docker rm -f $(docker ps -qa)

 

Docker器日志

 

$ docker logs [OPTIONS] CONTAINER

  Options:

        --details        显示更多的信息

    -f, --follow         跟踪实时日志

        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)

        --tail string    从日志末尾显示多少行日志, 默认是all

    -t, --timestamps     显示时间戳

        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

 

 

 

猜你喜欢

转载自www.cnblogs.com/psyu/p/11952960.html