说明:本教程使用的系统是:centos7
1.Docker 介绍
2.Docker 安装与启动
- 安装前提:docker需要Linux内核是3.10以上:uname -r 查看Linux内核
- 安装指令:yum install docker
- 启动指令:systemctl start docker.service
- 停止指令:systemctl enable docker.service
- 查看版本:docker version
- 设置docker开机启动:systemctl enable docker
3.Docker 相关概念
docker daemon:运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互
docker主机(Host): 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器
docker客户端(Client): 客户端通过命令行或者其他工具使用 Docker [API](https://docs.docker.com/reference/api/docker_remote_api)与 Docker 的守护进程通信
docker镜像(Images): Docker 镜像是用于创建 Docker 容器的 模板
docker容器(Container): 容器是独立运行的一个或一组应用
docker仓库(Registry): Docker仓库用来保存镜像(Images),可以理解为代码控制中的代码仓库
4.Docker 组成
Docker image :镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载
Docker container :容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
Docker hub/registry :共享和管理Docker镜像,用户可以上传或者下载上面的镜像,[官方地址](https://registry.hub.docker.com/),也可以搭建自己私有的[Docker Registry](https://registry.hub.docker.com)
5.Image 常用指令
操作 |
指令 |
说明 |
检索镜像 |
docker search mysql |
查询image |
拉取镜像 |
docker pull docker.io/mysql:tag |
tag可选,默认;latest,可以全名,也可以简写 |
镜像列表 |
docker images |
本地镜像列表 |
删除镜像 |
docker rmi image-id |
删除本地docker image |
6.container 常用指令
操作 |
指令 |
说明 |
运行容器 |
run --name test-tomcat tomcat:latest -d |
后台运行 Tomcat 的 latest 版本 |
查看运行中的容器 |
docker ps |
-a 全部 |
停止容器 |
docker stop name/container-id |
|
删除容器 |
docker rm name/container-id |
|
启动容器 |
docker start name/container-id |
|
端口映射 |
docker run --name tomcat-9000 -p 9000:8080 -d docker.io/tomcat:latest |
顺序:自己指定的:镜像的端口 |
查看日志 |
docker logs name/container-id |
|
7.Docker 的 Hello World
1) 查询镜像: docker search hello
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/hello-world Hello World! (an example of minimal Docker... 666 [OK]
2) 拉取镜像:docker pull docker.io/hello-world 或者去掉前缀,直接 docker pull hello-world
成功提示:
Using default tag: latest
Trying to pull repository docker.io/library/hello-world ...
latest: Pulling from docker.io/library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for docker.io/hello-world:latest
3)检查镜像:docker iamges
4) 启动容器:docker run hello-world
出现:Hello from Docker!,运行成功
5)删除容器:
查询容器ID : docker ps -a
删除容器: docker rm 81ff810918d3
6) 删除镜像
查询镜像: docker images
删除镜像: docker rmi 4ab4c602aa5e
8.温馨提示
- 如果镜像下载慢,可以使用镜像加速
- 使用方法:docker pull registry.docker-cn.com/library/ubuntu:16.04