docker-环境安装-基础命令
Docker概述
- docker是一种linux容器技术,一种高效,敏捷和轻量级的容器解决方案
- 支持多种主流平台,和本地部署,docker是基于GO语言实现的开源项目,
- 遵循 apache2.0开源会议,全部源码均在 https://github.com/docker 上进行相关维护。
Docker的体系结构
- 使用C/S架构
Docker内部核心概念
- 镜像 docker images
- 镜像是docker容器运行时的只读模板,镜像可以用来创建docker容器
- 镜像是只读的,容器在启动的时候,创建一层可写作最上层
- 仓库 docker repository
- 类似于代码仓库 它是docker集中存放镜像文件的地方
- 容器 docker contains 利用容器运行 一个docker容器包含了所有的某个应用运行所需要的环境
Docker特性
- 文件系统的隔离:每个进程容器运行在一个完全独立的根文件系统里
- 资源隔离:系统资源像 C 和内存等可以分配到不同的容器中,使用 Cegrop对系统资源进行分配隔离
- 网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和ip地址
- 日志记录 Docker将会收集和记录每个进程容器的标准流
- 变更管理:容器文件系统可以提交到新的映像中,并可以重复使用以创建更多的容器,不需要使用模板或手动配置
- 交互式shell Docker 可以分配一个虚拟终端并关联到任何容器的标准输入上
Docker环境的安装
系统 | centos7.4以上 |
---|---|
阿里云地址 | https://mirrors.aliyun.com/docker-ce/ |
官网 | https://docs.docker.com/ |
docker镜像地址 | https://hub.docker.com/ |
- 配置yum源
- yum源 是从阿里云镜像地址找出
vim /etc/yum.repos.d/ ali-docker.repo [docker] name = aliyun-docker baseurl = https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/ enabled = 1 gpgcheck = 1 gpgkey = https://mirrors.aliyun.com/docker-ce/linux/centos/gpg https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/ # 阿里的docker所有软件包 https://mirrors.aliyun.com/docker-ce/linux/centos/gpg # 秘钥
- 安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装依赖 yum -y install docker-ce # yum安装 systemctl start docker # 启动 docker -version # 查看docker当前版本 docker version # 查看docker详细的版本信息等
镜像加速
一种 阿里云加速 https://cr.console.aliyun.com/cn-qingdao/instances/mirrors 镜像加速地址
一种 道客加速 https://www.daocloud.io/ 镜像加速地址
道云加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io # 直接复制到linux运行 systemctl restart docker # 重启docker docker info 查看信息 在这里可以查看加速器是否更换
以下是加速成功截图
阿里云加速
vim /etc/sysctl.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 # 添加这两个,docker info 时error就会没有(可以不用写,如果有error就写上) vim /etc/docker/daemon.json { "registry-mirrors": ["https://p5ihdfyr.mirror.aliyuncs.com"] } # 将里面的地址换成阿里云的镜像地址 systemctl daemon-reload systemctl restart docker # 重启docker docker info # 查看
注意,道云现在一般不用这个了,用阿里云加速就可以
docker基础命令
- 搜索镜像
docker search 镜像名
列举自制镜像的起名方式
lmk/centos-nginx-apache-ip
作者/镜像-镜像中安装的软件-软件-软件
下载镜像
docker pull 镜像名
- 查看镜像
docker images
- 删除镜像
docker rmi 镜像id\镜像名
- 导出镜像
docker save -o 导出镜像名.tar 要导出的镜像
- 导入镜像
docker load < 镜像tar包
- 上传镜像
docker push 镜像名称
- 这里需要连接谷歌,图片暂时没有
- 查看docker基础信息
docker info
- 查看正在运行的容器
docker ps
docker ps -a 查看所有运行过的容器
- 运行容器内的命令
docker run centos 需要运行的命令
- 从后台运行容器
docker run -itd 容器名称 /bin/bash
it 打开交互页面
d 后台运行
后台运行后会显示一个长的容器编号,容器的id编号就是长容器编号的前12位
启动容器\关闭容器
docker start 容器名 docker stop 容器名 docker restart 容器名 重启容器 docker kill 容器名 快速关闭容器
挂起容器
docker pause 容器名 挂起 docker unpause 容器名 取消挂起
进入容器
docekr attach 容器名
docker exec -it 容器名
- 两者的区别
- Bash是可以多开的
- attach代表的是进入容器已经打开的bash
- exec 代表是重新打开一个bash
- exec本身的作用是让计算机去执行某一个命令
- attach是真正的进入容器
- docker exec -it 容器id /bin/bash 这个就是让exec去容器内在执行一个bash,从而让容器完成运行
- 删除容器
docker rm 容器名 docker rm -f 容器名 强制删除容器
- 给容器命名
docker run -itd --name 容器名 容器镜像
- 将容器制作成镜像
docker commit 容器id\容器名 要启动的容器名 (lmk/centos-nginx)
小结
- docker两个进入容器方法的区别
attach 和 exec
attach 是直接进入docker的bash环境
exec 是先创建一个bash环境,然后再进入,退出是退出的刚刚创建的bash环境 - docker的基础操作逻辑
docker 先pull将仓库中的镜像下载到本地,然后通过images查看到镜像,通过run 将镜像运行在容器中,然后可以对容器进行操作(start,stop 等),也可以对容器安装软件,安装完服务或者软件后,通过commit对容器进行打包成镜像,然后通过save将镜像保存到本地,在其他docker中load到其他docker中,或者push上传到docker仓库
本博客所有文章是以学习为目的,如果有不对的地方可以一起交流沟通共同学习 邮箱:1248287831@qq.com!