1、docker扫盲
1.1、docker的核心组件
- Docker客户端和服务端
- docker镜像
- Registry
- docker容器
1.2、docker客户端和服务端
docker是一个C/S架构的程序 docker客户端只需向docker服务端或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。
1.3、docker镜像
镜像是构建docker的基石 用户基于镜像来运行自己的容器
1.4、Registry
- docker用Registry来保存用户构建的镜像
- 用户可以在docker Hub注册账号,分享并保存自己的镜像
1.5、docker容器
- docker可以帮你构建和部署容器,你只需把自己的应用程序或者服务打包放进容器。
- ***镜像是docker生命周期中的构建或者打包阶段,而容器则是启动货执行阶段。
2、安装docker
2.1 安装docker的四个先决条件
- 必须是运行64位CPU架构的计算机
查看计算机信息命令
uname -a
- 运行Linux版本大于或者等于v3.8
- 默认存储驱动必须是Device Mapper
检查device mapper方法
ls -l /sys/class/misc/device-mapper
- 内核必须支持并开启cgroup和命名空间(namespace)功能
2.2 Centos 6中安装docker
- 安装RPEL
sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386
/epel-release-6-8.noarch.rpm
- 安装docker
sudo yum -y install docker -io
3、docker守护进程
3.1 centos6中docker的守护进程
- 启动守护进程
sudo service docker start
- 系统开机自动启动命令
sudo service docker enable
3.2 centos 7中docker的守护进程
- 启动守护进程
sudo systemctl start docker
- 系统开机自动启动命令
sudo systemctl enable docker
4、docker常用命令
- 查看docker信息
sudo docker info
- 运行一个容器
sudo docker run -i -t ubuntu /bin/bash
// -i标志保证容器中开启STDIN
// -t标志告诉docker分配一个伪tty终端
// ubuntu 告诉docker基于ubuntu创建容器
// bin/bash 告诉docker创建成功后运行/bin/bash命令
- docker创建一个新的容器后,该容器拥有自己的网络IP地址,以及一个用来和宿主机进行通信的桥接网络接口
- 列出所有容器,包括以及停止运行的容器
docker ps -a
- 容器的命名 --name
sudo docker run --name docker_01 -i -t nbuntu /bin/bash
- 重新启动容器
sudo docker start docker_01
- 创建守护式容器 -d
sudo docker run --name docker_01 -d ubuntu /bin/bash -c "while true"
- 查看docker日志
sudo docker logs -ft docker_01
- 查看docker内的进程
sudo docker top docker_01
- 在容器内部运行进程
后台运行
sudo docker exec -d docker_01 touch /etc/new_config_file
交互式运行
sudo docker exec -t -i docker_01 /bin/bash
- 停止守护式容器
sudo docker stop docker_01
- 自动重启容器 --restart
restart =always 无论容器的退出代码是什么,docker都会自动重启该容器 restart = on-failure:n 只有当容器的退出代码为非0值的时候,才会自动重启,n表示重启次数
sudo docker run --restart=always --name docker_01 -d ubuntu /bin/sh -c "while true"
sudo docker run --restart=on-failure:5 --name docker_01 -d ubuntu /bin/sh -c "while true"
- 查看容器的详细信息
sudo docker inspect docker_01
- 删除单个容器
sudo docker stop docker_01
sudo docker rm docker_01
- 删除所有容器
sudo docker stop 'docker ps -a -q'
sudo docker rm 'docker ps -a -q'
//-q 标志表示只需要返回容器的id(容器名)
|