docker是一个开放源代码的软件项目,docker的作用是能将应用封装在独立的容器中运行。
基本概念:
- image(镜像)
- docker 镜像是只读的模板,用来创建容器。
- container(容器)
- 容器是镜像创建的运行实例,每个容器相互隔离。
- repository(仓库)
- 仓库是存放镜像的地方。
安装docker:
OS:Ubuntu-Server-16.04.2
在安装docker之前一定要满足所需条件:
kernel:大于3.10
平台:x86_64
1.更新软件包索引:
sudo apt-get update?
2.使用HTTPS安装软件包库:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
3.添加docker官方GPG密钥并验证:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88
4.添加docker软件包库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable
5.安装docker ce:
sudo apt-get update sudo apt-get install docker-ce #docker-ce为社区版,企业版为docker-ee
6.添加docker到开机启动
sudo systemctl enable docker sudo systemctl is-enabled docker sudo systemctl start docker?
使用docker:
默认情况下,非root用户是无法操作docker的,为了解决这个问题,可以参考以下方法:
方法1: 给docker程序增加suid chmod u+s /usr/bin/docker 方法2: 将用户添加到docker组 安装完docker后,会创建docker组 cat /etc/group | grep docker #查看docker组是否存在 usermod -a -G docker user_name #使用root用户执行,将用户加入docker组 id user_name #查看用户是否加入docker组
查看docker相关信息:
docker info docker --version?
镜像类命令:
docker images #查看本地已存在的镜像文件 docker rmi IMAGE ID #删除镜像文件 docker rmi -f IMAGE ID #强制删除镜像文件 docker rmi $(docker images -q) #一次性删除所有的镜像 docker search NAME #搜索镜像 docker pull NAME #下载镜像 docker pull NAME:TAG #下载指定标签镜像 docker pull repository/NAEM:TAG #下载指定仓库指定标签镜像
容器类命令:
docker run -i:标准输入,交互 -t:分配一个终端 -d:在后台运行容器 --name:指定容器的名字 --rm:运行完毕即删除 -v:绑定挂载卷 -P:端口映射,端口随机产生 -p:端口映射,端口指定 --link:容器互联 docker run centos /bin/echo "Hello world" docker run --name="centos" -itd centos tail -f /etc/hosts docker run --rm=true centos cat /etc/passwd docker run --name=‘test‘ -itd -v /data:/data centos /bin/bash docker run --name=‘test‘ -itd -p 8080:8080 centos /bin/bash docker run --name=‘link1‘ -itd centos dicker run --name=‘link2‘ --link lin1 -itd centos 进入容器: docker exec -it centos /bin/bash 启动/停止容器: docker start CONTAINER ID docker stop CONTAINER ID 删除容器: docker rm CONTAINER ID docker rm -f CONTAINER ID docker rm $(docker ps -q -a) #一次性删除所有的容器
管理类命令:
docker ps #查看运行的容器 docker ps -a #查看所有容器 docker stats #实时监控容器状态信息 docker inspect CONTAINER #查看容器详细信息 docker top CONTAINER #查看运行中容器进程运行状态 docker port CONTAINER? #查看容器端口映射 docker logs CONTAINER #查看容器的日志信息
导入导出:
镜像: docker export CONTAINER ID > filename.tar cat filename.tar | dcker import - image_name 容器: docker save CONTAINER ID > /path/to/filename.tar docker load < /path/to/filename.tar 两者区别: save,会保存该镜像的所有历史记录 export,不会保留历史记录?