Docker基础用法

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。

CentOS 7 安装Docker CE

一.安装准备

系统要求

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine


二.使用yum安装

2.1使用清华大学的镜像站

[root@liujie yum.repos.d]# wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
替换url:
[root@liujie yum.repos.d]# vim docker-ce.repo
:%s@https://download.docker.com/@https://mirrors.tuna.tsinghua.edu.cn/docker-ce/@

2.2安装Docker

[root@liujie yum.repos.d]# yum install docker-ce -y  

解决 docker-ce 安装报错 cont9ainer-selinux >= 2.9

1. 下载container-selinux-2.9-4

下载地址: ftp://ftp.icm.edu.pl/vol/rzm3/linux-centos-vault/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm

2.安装 container-selinux

[root@liujie yum.repos.d]# yum install container-selinux-2.9-4.el7.noarch.rpm

2.3 镜像加速器

阿里云镜像加速器:https://cr.console.aliyun.com/#/accelerator
使用配置文件/etc/docker/daemon.json(没有时新建该文件)。

{
 "registry-mirrors": ["https://q95dlt3p.mirror.aliyuncs.com"]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。


启动docker

[root@liujie ~]# systemctl restart docker
[root@liujie ~]# docker version
Client:
Version:           18.09.0
API version:       1.39
Go version:        go1.10.4
Git commit:        4d60db4
Built:             Wed Nov  7 00:48:22 2018
OS/Arch:           linux/amd64
Experimental:      false

Server: Docker Engine - Community 
Engine:  Version:          18.09.0  
API version:      1.39 (minimum version 1.12) 
Go version:       go1.10.4   
Git commit:       4d60db4  
Built:            Wed Nov  7 00:19:08 2018  
OS/Arch:          linux/amd64  
Experimental:     false


三.常用操作

docker [OPTIONS] COMMAND
COMMAND 又为子命令 分为几类
建议使用分组的管理命令


3.1 #docker info
查看docker系统信息。

[root@liujie ~]# docker info  
Containers: 0    //显示容器个数  
Running: 0   //运行状态的  
Paused: 0   //暂停状态的  
Stopped: 0   //停止状态的  
Images: 3    //有多少个镜像  
Server Version: 18.09.0  
Storage Driver: overlay2   //存储驱动后端  
Backing Filesystem: xfs  
Supports d_type: true  
Native Overlay Diff: true  
Logging Driver: json-file  
Cgroup Driver: cgroupfs  
Plugins:  
Volume: local  
Network: bridge host macvlan null overlay  
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog  
Swarm: inactive  
..........  
Insecure Registries:  
127.0.0.0/8  
Registry Mirrors:  
https://q95dlt3p.mirror.aliyuncs.com/    //阿里云加速   
Live Restore Enabled: false  
Product License: Community Engine  

3.2 #docker search
搜索镜像

–automated :只列出 automated build类型的镜像;

–no-trunc :显示完整的镜像描述;

-s :列出收藏数不小于指定值的镜像。

[root@liujie ~]# docker search -s 200  redis  
 Flag --stars has been deprecated, use --filter=stars=3 instead  
 NAME                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
 redis               Redis is an open source key-value store that…   6299                [OK]  

3.3 #docker image pull
从镜像仓库中拉取或者更新指定镜像

[root@liujie ~]# docker image pull nginx:1.14-alpine

3.4 #docker images
列出本地所以镜像
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
–digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
–format :指定返回值的模板文件;
–no-trunc :显示完整的镜像信息;
-q :只显示镜像ID

[root@liujie ~]# docker image images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.14-alpine         d956af1ad36a        13 days ago         17.7MB
nginx               latest              568c4670fa80        3 weeks ago         109MB

3.5 #docker image rm 或者docker rmi
删除docker镜像
而docker rm 则为删除容器

[root@liujie ~]# docker image rm redis

3.6 #docker container create
创建容器


3.7 # docker container ls 或 # docker ps
列出容器


3.8 # docker container run
创建并运行容器

root@liujie ~]# docker container run  --name b1 -it busybox

3.9 # docker container stop
停止容器

[root@liujie ~]# docker container stop b2
b2

3.10 #docker container rm
删除容器
删除容器先停止容器

[root@liujie ~]# docker container rm b1

b1

3.11 #docker container logs
获取容器的日志

[root@liujie ~]# docker container logs web1  
172.17.0.1 - - [19/Dec/2018:07:33:38 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"