- A+
所属分类:linux技术
1. 概念
1. 镜像
包含文件系统的面向Docker引擎的只读模板,给应用程序提供运行环境。CentOS、Ubuntu镜像指装载有该操作系统的模板,也可以在这之上装一些软件,例如Nginx镜像,Flask镜像等。
2. 容器
容器是指镜像创建的实例,相当于一个轻量级的虚拟机,Docker利用容器来运行程序,并隔离每个应用。
3. 仓库
指镜像仓库,集中存取Docker镜像文件的仓库,每个仓库一般只存放一类镜像,使用tag区分。
2. 基础操作
1. 安装/删除操作
官方注册服务器:hub.docker.com
每个仓库有多个镜像,在仓库pull时需要用tag标识,不加默认pull latest镜像文件
docker search nginx #查看nginx镜像文件 docker pull nginx #pull镜像 docker images #查看当前系统镜像 docker rm -f <containerid> #删除指定容器 docker save -o 镜像名 username/仓库名:tag # 保存镜像 docker load -i 镜像名 # 加载镜像
2. 运行等操作
docker run -it nginx:latest /bin/bash #启动一个容器 #-i表示打开并保持stdout,-i表示分配一个终端 [ctrl+p] [ctrl+q] #退出当前容器 docker ps -a #查看docker中正在运行的容器 docker start-i和-t。前者表示打开并保持stdout,后者表示分配一个终端 #启动一个容器但不进入 docker attach container_name/container_id #进入一个容器 docker stop container_name/container_id #暂停 docker restart container_name/container_id #重启
3. 打包容器
docker commit -m "message" -a "username" <containerID> 用户名/仓库名:tag #打包一个容器为镜像 docker login #登录dockerhub docker push 用户名/仓库名:tag #push到dockerhub
4. dockerfile相关
dockerfile是docker的配置文件,指定docker build操作的时候执行的操作
# 说明该镜像以哪个镜像为基础 FROM ubuntu:latest # 构建者的基本信息 MAINTAINER username # 在build这个镜像时执行的操作 RUN apt-get update RUN apt-get install vim # 拷贝本地文件到镜像中 COPY ./* /usr/share/gitdir/
使用docker build构建镜像
docker build -t="username/仓库名:tag" . #-t 指定新镜像的用户信息,仓库名tag,最后一个参数表示在当前目录找dockerfile文件 docker build -t ImageName:TagName dir #-t表示给镜像加tag,dir表示docker文件的位置
3. Docker Compose
Docker Compose是一个Docker容器管理工具,通过docker-compose.yml
文件管理,可以同时启动多个容器
1. 安装
- 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 文件改为可执行
sudo chmod +x /usr/local/bin/docker-compose
- 确认是否成功
sudo docker-compose --version
2. 使用
- 配置
docker-compose.yml
version: '3' services: # nginx 服务 nginx: # 推荐使用官方镜像 image: nginx:latest # 映射端口,把容器端口映射到宿主机对外接口,格式:对外端口:容器端口 ports: - "80:80" - "443:443" # 所依赖的服务,php会先启动 depends_on: - php # php 服务 php: # 官方镜像 image: php:7-fpm
- 启动多个服务
sudo service docker start #docker启动 sudo docker-compose up -d #运行docker-compose,并切换到docker-compose.yml文件所在目录 #这时候会自动下载并运行nginx,php这两个容器 docker ps #查看正在运行的容器