Docker 是一个开源的应用容器引擎,Docker可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
开发者通过的容器可以批量地在生产环境中部署。
Docker的思想: Build one,Run anywhere (构建一次,处处运行) 快速,一致地部署我们的应用程序 。
Docker通常用于如下场景:
镜像(Image):Docker镜像就是一个只读的模板,可以用来创建Docker容器,一个镜像可以创建很多容器。本质上来说镜像就是一系列文件,可以包括我们应用程序的文件,也可以包括我们应用的运行环境的文件。
容器(Container):Docker容器可以理解为是镜像创建的运行实例,容器和镜像的概念类似于对象和类的概念。
Docker |
面向对象 |
镜像 |
类(class) |
容器 |
对象 |
仓库(Repository):是集中存放镜像文件的场所,类似于maven仓库和npm仓库。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式,默认docker.io上下载镜像,更换私服可以修改daemon.json文件。
Docker 安装
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
sudo systemctl start/stop/restart docker
阿里云镜像获取地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,登陆后就可以看到你的专属地址
修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker 常用命令
1. 查找镜像:docker search xxx xxx代表要查找的镜像名称,如docker search nginx
2. 镜像拉取:docker pull nginx:tag tag代表镜像版本 ,不带:tag代表获取最后一个版本,通过下面地址可以查找镜像和查看版本https://hub.docker.com/search?q=&type=image 下载过慢可以更换国内仓库https://cr.console.aliyun.com/
3. 查看本地镜像:docker images
4. 删除镜像:docker rmi xxx , 其中xxx代表image id,注意若镜像已经创建了容器,请先删除容器。
5. 构建镜像 当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过使用 Dockerfile 指令来构建一个新的镜像。
6. 查看容器 docker ps -a 查看所有创建的容器 docker ps 查看正在运行中的容器
7. 运行容器:docker run --name docker-nginx -p 8086:80 -d nginx
参数说明: --name nginx-test:容器名称。 -p 8080:80: 端口进行映射,将本地 8086 端口映射到容器内部的 80 端口。 -d nginx: 设置容器在在后台一直运行。 -v 本地目录:/etc/nginx/nginx.conf 可以将ngnix的配置文件挂载出来,便于修改,也可以实现数据持久化,如mysql 的持久化,映射数据目录 -v /opt/mysql/data:/var/lib/mysql 8. 容器停止、启动、重启:docker stop/start/restart xxx,其中xxx代表容器的id,每个容器都会分配一个唯一的id。 9. 容器删除:docker rm xxx