学习docker我们可以先了解下几个基本的概念和一些基础命令的含义。
1.仓库
仓库,Registry
一个集中存储、分发镜像的服务,DockerHub就是这样的服务
Docker-Hub地址:https://hub-stage.docker.com
私仓可以用 Harbor
2.镜像
镜像,Image
镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包括一些运行时的配置参数(如环境变量、用户等)
a.搜索镜像,默认为docker hub官方镜像
docker search 镜像名
--automated=false 仅显示自动创建的镜像
--no-trunc=false 输出信息不截断显示
-s, --stars=0 指定仅显示评价为指定星级以上的镜像
b.查看镜像
docker images
REPOSITORY 来源哪个仓库
TAG 镜像的标签
IMAGE ID 镜像的ID号(唯一)
CREATED 创建时间
SIZE 镜像大小
c.下载镜像
docker pull 镜像名:版本
d.删除镜像
docker rmi 镜像名:版本 或 镜像ID # 被删除镜像应从未运行过的任何容器
docker rmi -f 镜像名:版本 或 镜像ID # 强制删除镜像(不删除对应的容器)
3.创建镜像
创建镜像有三种方法:基于已有镜像的容器创建、基于本地模版导入、基于Dockerfile创建。
容器,Container
镜像和容器的关系,就像“类”和“对象”的关系类似
镜像是模版,容器是镜像运行时的实例,一个镜像可以被多次创建为不同容器
a.基于已有镜像的容器创建
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a, --author="" 作者信息
-m, --message="" 提交信息
-p, --pause=true提交时暂停容器运行
docker run -it ubuntu:14.04 /bin/bash
b.基于本地模版导入
cat ubuntu-14.04-x86-64.tar.gz | docker import - ubuntu:14.04
c.存出和载入镜像
docker save
docker save -o ubuntu_14.04.tar ubuntu:14.04
docker load
docker load < ubuntu_14.04.tar
d.上传镜像
docker push 默认上传到dockerhub官方仓库(需要登录)
docker push NAME:[TAG]
docker tag test:lastest user/test:last
docker push user/test:lastest
4.容器
a.新建容器
docker create
docker create -it ubuntu:latest
docker run ubuntu /bin/echo 'Hello world'
检查本地释放存在指定镜像,不存在就从公有仓库下载
利用镜像创建并启动一个容器
分配一个文件系统,并在只读的镜像层外面挂载一层可读可写
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
从地址池配置一个IP地址给容器
执行用户指定的应用程序
执行完毕后容器被终止
docker run -it ubuntu:14:04 /bin/bash
-d 守护态运行
b.停止容器
docker stop/kill 容器名 或 容器ID
c.进入容器
docker exec -it 容器名 或 容器ID /bin/bash
d.删除容器
docker rm 容器名 或 容器ID
docker container prune -f (批量删除所有停止的容器)
-f --force=false 强制终止并删除一个运行中的容器
-l --link=false 删除容器的连接,但保留容器
-v --volumes=false 删除容器挂载的数据卷
注:启动中的容器无法删除
e.查看容器
docker ps -a
f.运行容器
docker run --name 容器名 -itd 镜像名
注:若省略容器名,Docker会自动分配一个容器名,
-i 交互模式运行容器
-t 为容器分配一个伪终端
-d 守护进程运行容器(exit退出交互模式后容器扔运行)
若本地仓库没有对应镜像会自动从远程仓库下载,否则报错!
--name xxx 给容器起个名字,必须唯一
-p 3306:3306 设置端口映射,后面为容器内端口
-e key=value 设置环境变量
g.导入和导出容器
docker export ce5 > test_ce5.tar
docker import - test/ubuntu:v1.0
例子:
在dockerhub中搜索nginx镜像
拉取nginx镜像
查看本地镜像列表
创建并运行nginx容器
查看容器
停止容器
再次启动容器
进入nginx容器
删除容器
docker search nginx
docker pull nginx
docker images
docker run -d --name nginx -p 8080:80 nginx
docker ps
docker stop nginx
docker start nginx
docker exec -it nginx /bin/bash
docker rm nginx