Docker学习

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					#启动一个容器
docker run -p 本机映射端口:镜像映射端口 -d  --name 启动镜像名称 -e 镜像启动参数  镜像名称:镜像版本号
#-i表示打开并保持stdout,-i表示分配一个终端
[ctrl+p]		[ctrl+q]													#退出当前容器
docker ps -a																	#查看docker中正在运行的容器
docker start-i和-t。前者表示打开并保持stdout,后者表示分配一个终端			#启动一个容器但不进入
docker attach container_name/container_id			#进入一个容器(未指定bash会卡住)
docker exec -it containerID /bin/bash #进入一个容器
docker stop container_name/container_id				#暂停
docker restart container_name/container_id		#重启
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)			查看docker容器ip地址

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												#查看正在运行的容器
posted @ 2022-12-17 16:35  流光之中  阅读(111)  评论(0编辑  收藏  举报