Docker核心概念
Docker主机:安装了Docker程序的机器。Docker直接安装在操作系统之上
Docker客户端:连接Docker主机进行操作
Docker仓库:用来保存各种打包好的软件镜像
Docker镜像:软件打包好的镜像,放在Docker仓库中
Docker容器:镜像启动后的实例
Docker三要素:仓库、镜像、容器
Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器。容器,是一个运行时环境,类似集装箱。
Docker与虚拟机:
- 虚拟机有软硬件资源,Docker不需要Hypervisor 实现硬件资源的虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
- docker容器包含应用和其所有的依赖包,与其他容器共享宿主机的内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。
- 传统虚拟化技术是对硬件资源的虚拟,docker技术则是对进程的虚拟,从而可提供更轻量级的虚拟化,实现进程和资源的隔离。
Docker命令
Docker安装
-
查看centos版本:uname -r
注:Docker要求Centos系统的内核版本高于3.10 -
安装Docker:yum install docker
-
启动Docker:systemctl start docker
-
关闭Docker:systemctl stop docker
-
将docker服务设为开机启动:systemctl enable docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
- 查看docker版本:docker -v 或 docker version
- 查看docker信息:docker info
Docker镜像操作
8. 检索镜像:docker search 关键字
- 拉取镜像:docker pull 镜像名:tag 注:tag为可选,表示标签,为软件的版本,默认是latest
docker pull mysql:5.7
-
查看所有本地镜像:docker images
-
删除指定镜像:docker rmi image-id
Docker容器操作
- 新建并运行容器:docker run --name 自定义容器名 -d image-name:tag 多次运行同一个镜像会启动多个容器
注:1. -d:后台运行 - -p port1:port2:将主机端口映射到容器内部的端口
- -P:随机端口映射
- -it:以交互模式启动一个容器
- 查看运行的docker容器:docker ps
- 查看所有docker容器,包括运行中和退出的:docker ps -a
- 停止docker容器:docker stop container-id或container-name
- 强制停止docker容器:docker kill container-id或container-name
- 启动docker容器:docker start container-id或container-name
- 删除docker容器:docker rm container-id
- 查看容器日志:docker logs container-name或container-id
- 查看容器详细信息:docker inspect container-id
- 进入当前正在运行的容器:docker exec -it container-id /bin/bash (开启一个新的终端连接容器,可以在通过新的终端操作容器)
docker attach container-id:进入容器正在执行的终端,无法进行操作 - 从容器内拷贝文件到主机上:docker cp 容器id:容器内路径 主机路径
- 提交镜像:docker commit -m=“提交的描述信息” -a=“作者” container-id 自己定义的镜像名称:自己定义的tag
- 更新已创建的容器为自启动:docker update 容器id --restart=always