docker的相关概念
docker是一个做系统虚拟化的软件,跟vmware类似,虚拟出来的也是操作系统。我们现在在企业中, 使用docker虚拟出来的系统,大多都是linux系统。
docker镜像image:就是虚拟一个docker容器需要的操作系统、服务的依赖、服务包,打包成的一个文 件。
docker容器 container:就是用docker软件虚拟出来的一个linux操作系统。
docker仓库:就是管理镜像的地方。
- 公有仓库:hub.docker.com,所有人都可以在这里免费下载镜像
- 私有仓库: 管理私有镜像的仓库
docker的操作系统是一个不完整的操作系统。部署项目的操作系统,有很多操作系统的功能是不需要的。把一些不需要的功能,全部从操作系统中移出出去。那么这个操作系统就给变得非常小了。小到这 个操作系统,只有三个部分是必须的:cgroups、namespace、unionFS。所以容器就可以变得非常小。所以,它占用宿主机的资源就很小。所以一台机器就可以参数更多容器出来。
因为docker容器的操作系统,砍掉了很多功能,所以里面可以执行linux命令,但是不是所有的命 令都可以执行。
一个宿主机上,给运行多个docker容器,容器与容器之间默认是相互隔离的。
docker安装
yum install -y yum-utils device-mapper-persistent-data lvm2
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl restart docker # 重启
systemctl enable docker #开机自启动
docker命令使用,需要超管权限。
获取帮助: docker --help
查看到docker子命令的帮助: docker command --help
常用到命令
- docker pull 下载镜像到本地,命令用法: docker pull 镜像名称:tag
- 默认是从docker官方网站上下载镜像: docker pull tomcat:8.0.53-jre7-alpine 下载tomcat为8.0.53 jre为7的tomcat镜像
- docker images 列出所有本地镜像
- docker run 创建容器并运行 docker run -itd --cpus 1 --memory 2G --name tomcat-kyj-1 -p 6666:8080 tomcat:8.0.53-jre7-alpine
- docker create 只是创建一个新容器,创建之后,并没有运行。
- 使用docker run 命令,常用选项参数:
- -i
- -t
- -d
- --name 自定义容器的名称,这个参数可以不带,不带就随机生成一个容器名称
- -p 发布容器的端口个宿主机。 -p 宿主机的端口:容器中服务的端口
- -v 卷积 把宿主机的一个路径映射到容器中一个路径。 当容器被删除时,这个宿主机的 路径下的内容不会删除。
- -e 设置环境变量 docker run 命令,在创建容器时,如果使用的镜像,本地没有就会去自动下载
- docker logs 容器名称或容器id
- docker ps 查看容器状态,默认时只显示正在运行的容器,跟上-a参数,显示所有的容器‘容器id’和‘容器的名称’
- docker stats 容器名称或容器id,可以来查看容器的运行状态
- docker inspect 容器名称或容器id,用来查看容器的相信信息
- docker cp 拷贝
- docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- 从容器中拷贝到本地路径
- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH 从本地拷贝到容器中某个路径
- docker exec 在一个运行中的容器中执行命令
- docker exec -it 容器名称或容器id /bin/bash 进入容器内部,使用bash命令一般情况 使用bash,也可以使用sh
- exit 退出容器