2.docker基础用法

一、前言

OCI(Open Container Initiative):由Linux基金会主导于2015年6月创立,OCI定义了容器运行时的标准。

OCI有两部分组成:

the Runtime Specification:运行时标准

the image Specification:镜像格式标准

OCF(Open Container Format):runC是Docker按照开放容器格式标准(OCF)制定的一种具体实现,runC是从Docker的libcontainer中迁移而来的,实现了容器启停,资源隔离等功能,Docker默认提供了docker-runc实现。

docker-ee:企业版

docker-ce:社区版

二、Docker架构

C-S架构,Docker daemon默认只监听在Unix套接字之上,可修改配置文件来监听tcp端口。

docker client – docker daemon – docker registries

客户端(docker run |create等)通过httpd或https和一个运行了docker host守护进程的主机(docker daemon)通信。docker daemon接收到了客户端的创建或启动容器的命令后,将在本地查找镜像创建或启动容器(在一个docker host上可以启动多个容器)。如果本地没有镜像,docker host会连接到配置的远程Registry(默认Registry是Docker Hub,默认使用https协助)上下载镜像到本地的一个专用的文件系统(在docker1.18使用的是overlay2,之前使用的是aufs/btrfs/lxc)。而后开始根据客户端命令创建或运行容器。

Registry:提供镜像存储的仓库功能;提供用户获取镜像时的认证功能;提供当前服务器上所有可用镜像的所有索引。一个docker镜像仓库(repository)只放一个应用程序,仓库名就是应用程序名,用仓库名和标签来标识唯一一个镜像,默认标签名为latest。一个Registry拥有很多个仓库(Repository)。

镜像是静态的,而容器是具有生命周期的。

镜像是不可修改的,只能重构。

三、基础使用

1、安装和使用

依赖的基础环境:64bit CPU,Linux Kernel 3.10+,Linux Kernel namespace and Cgroups

CentOS7的Extras Repository有docker,但不建议使用,因为版本太老了。

docker-ce默认使用的配置文件:/etc/docker/daemon.json

docker镜像加速:docker cn、阿里云加速器、中国科技大学加速器,写入配置文件即可。

更换镜像和安装:

[root@oracle ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
[root@oracle ~]# sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
[root@oracle ~]# yum install docker-ce –y

配置镜像加速器:

[root@oracle ~]# mkdir /etc/docker
[root@oracle ~]# tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
[root@oracle ~]# systemctl daemon-reload
[root@oracle ~]# systemctl restart docker

验证:

[root@oracle ~]# docker version
[root@oracle ~]# docker info
[root@oracle ~]# systemctl status docker

2、常规操作

[root@node1 ~]# docker --help
Management Commands:
  builder     Manage builds
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  engine      Manage the docker engine
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes
等等

(1)镜像相关

[root@oracle ~]# docker search nginx
[root@oracle ~]# docker image pull nginx:1.14-alpine
[root@oracle ~]# docker image rm busybox
[root@oracle ~]# docker image ls --no-trunc
[root@oracle ~]# docker image ls
[root@oracle ~]# docker image --help

(2)容器相关

[root@oracle ~]# docker container –help
[root@oracle ~]# docker run --name busybox -it busybox:latest
[root@oracle ~]# docker run --name nginx -d nginx:1.14-alpine
[root@oracle ~]# docker ps -a
[root@oracle ~]# docker container ls -a

[root@oracle ~]# docker container inspect busybox
[root@oracle ~]# docker container start 5ac7a0330407
[root@oracle ~]# docker container attach busybox  #在终端里detach:先按ctrl+p;再按,ctrl+q
[root@oracle ~]# docker container logs nginx
[root@oracle ~]# docker run --name redis -d redis:4
[root@oracle ~]# docker container exec -it redis /bin/sh
[root@oracle ~]# docker container exec -it redis redis-cli

(3)网络相关

[root@oracle ~]# docker network --help
[root@oracle ~]# docker network ls

3、docker容器的各状态转换与常用命令

猜你喜欢

转载自www.cnblogs.com/cmxu/p/11768075.html