Docker介绍:

云计算就好比大货轮,docker就是集装箱虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动更慢,虚拟机软件可能还要花钱(例如VMWare)。
而容器技术恰好没有这些缺点。它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”)。它启动时间很快,占的空间很小,资源的利用率很高

Docker 的组成:

Docker 主机(Host):一个物理机或虚拟机,用于运行 Docker 服务进程和容器。 
Docker 服务端(Server):Docker 守护进程,运行 docker 容器。 
Docker 客户端(Client):客户端使用 docker 命令或其他工具调用 docker API。 
Docker 仓库(Registry): 保存镜像的仓库,类似于 git 或 svn 这样的版本控制系 
Docker 镜像(Images):镜像可以理解为创建实例使用的模板。 
Docker 容器(Container): 容器是从镜像生成对外提供服务的一个或一组服务。

一、docker安装:

/安装系统工具:
apt-get update
apt-get -y install apt-transport-https ca-certificates curl software-properties-common

/安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -

/写入软件源信息
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

/更新并安装Docker-CE
apt update
apt-get -y install docker-ce=5:18.09.9~3-0~ubuntu-bionic docker-ce-cli=5:18.09.9~3-0~ubuntu-bionic

二:下载镜像:

/从 docker 仓库将镜像下载到本地,命令格式如下: 
docker pull 仓库服务器:端口/项目名称/镜像名称:tag(版本)号

/例如下载centos:
docker pull centos

/查看本地镜像: 
docker images

/删除镜像:通过镜像启动容器的时 候镜像不能被删除,除非将容器全部关闭
docker rmi centos

三、容器操作基础命令:

/创建并进入容器:
docker run -d -ti --name zzx_centos centos:7 /bin/bash

/使用 exec 命令进入到正在运行的容器:
docker exec -ti zzx_nginx /bin/bash

/进入容器查看系统版本:
cat /etc/issue

/进入之后要下载需要更新下载源:
apt update

/显示正在运行的容器: 
docker ps 

/显示所有容器:包括当前正在运行以及已经关闭的所有容器 
docker ps -a

/批量关闭正在运行的容器:
docker stop $(docker ps -a -q) 

/批量强制关闭正在运行的容器: 
docker kill $(docker ps -a -q) 

/删除容器:
docker rm 容器 ID/容器名称  #删除容器
docker rm -f 容器 ID/容器名称   #强制删除正在运行的容器 

/批量删除已经关闭的容器:
docker rm `docker ps -q -a -f status=exited`

/随机映射端口: 
docker pull nginx 	#下载 nginx 镜像 
docker run -d --name zzx_nginx nginx:latest  

/指定端口映射:
docker run -d -ti --name zzx_nginx2 -p :80 nginx:latest  #指定nginx的80端口映射为随机端口号
docker run -d -ti --name zzx_nginx2 -p :80/tcp nginx:latest  #还可指定为tcp或udp端口
端口映射完成就可以用本机ip浏览器访问

/单次运行:直接进入容器,容器退出后自动删除
docker run --rm -ti nginx /bin/bash

/将容器映射到虚拟机/物理机(在容器里写文件,会同步到虚拟机/物理机,反过来同理):
docker run -d -ti --name zzx_nginx3 -P -v /data/nginx1:/data/nginx1 nginx /bin/bash

/给镜像做 tag :
docker tag nginx:latest images.zzx.com/system/nginx:1.18