1、Docker介绍
Docker是一个开源的应用容器引擎。
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
2、Docker中的几个概念
(1)镜像
镜像就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建多个容器。
(2)容器
容器是用镜像创建的运行实例,Docker利用容器独立运行一个或一组应用。它可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台。可以把容器看作是一个简易的Linux环境和运行在其中的应用程序。
(3)仓库
仓库是集中存放镜像文件的场所。每个仓库中又包含了多个镜像,每个镜像有不同的标签。仓库分为公开仓库和私有仓库两种形式,最大的公开仓库是DockerHub,存放了数量庞大的镜像供用户下载,国内的公开仓库有阿里云、网易云等。
3、Docker镜像指令
1)查看镜像
docker images
docker images 镜像名称
docker images 镜像名称 -q(-q表示仅查询id)
例如,docker images tomcat
2)下载镜像
docker pull 镜像名称:版本标志
docker pull 镜像名称(默认下载最新版本)
例如,docker pull tomcat
3)搜索镜像
docker search 镜像名称:版本标志
docker search 镜像名称
例如,docker search tomcat
4)删除镜像
docker image rm 镜像名称:版本标志
docker image rm 镜像名称(默认删除最新版本)
docker image rm 镜像id
docker image rm -f 镜像id(-f表示强制执行删除)
docker rmi 镜像名称:版本标志(简化版本)
例如1,docker image rm tomcat
例如2,docker rmi -f $(docker images tomcat -q)
4、Docker容器指令
1)运行容器
docker run 镜像名称:版本标志
docker run 镜像名称
docker run -p 宿主机端口:容器内的端口 镜像名称:版本标志(每次运行的容器都是相互独立的,所以同时运行多个tomcat容器并不会产生端口的冲突)
docker run -d -p 宿主机端口:容器内的端口 镜像名称:版本标志(-d表示以后台的方式运行)
docker run -d -p 宿主机端口:容器内的端口 --name 容器名称 镜像名称:版本标志(--name表示容器名称,容器名称必须是唯一的)
例如1,docker run -d -p 8088:8080 --name tomcat1 tomcat
例如2,docker run -d -p 3307:3306 --name mariadb1 -e MARIADB_ROOT_PASSWORD=123456 mariadb
例如3,docker run -d -p 15673:15672 -p 5673:5672 --name rabbitmq1 rabbitmq(然后执行docker exec -it rabbitmq1 bash、rabbitmq-plugins enable rabbitmq_management)
2)查看容器
docker ps(查看当前运行的容器)
docker ps -a(将运行和非运行的容器全部列举出来)
docker ps -q(查询正在运行的容器id)
docker ps -qa(查询运行和非运行的所有容器id)
例如,docker ps
3)容器的启动等指令
docker start 容器id或容器名称(docker run是利用镜像生成容器并启动容器,而docker start是启动一个之前生成过的容器)
docker restart 容器id或容器名称
docker stop 容器id或容器名称
docker kill 容器id或容器名称
docker rm -f 容器id或容器名称(-f表示强制执行删除)
例如,docker stop tomcat1
4)查看容器的运行日志,
docker logs 容器id或容器名称
docker logs -ft 容器id或容器名称(-f表示实时,-t表示时间戳)
例如,docker logs tomcat1
5)查看容器内运行了哪些进程
docker top 容器id或容器名称
例如,docker top tomcat1
6)与容器进行交互
docker exec -it 容器id或容器名称 bash(此时终端将会进入容器内部,执行的指令都将在容器中生效,在容器内只能执行一些比较简单的指令,若是想退出容器终端,则执行exit即可)
例如,docker exec -it tomcat1 bash
7)将文件复制到容器中
docker cp ./文件 容器id或容器名称:/目录
例如,docker cp ./index.html tomcat1:/usr/local/tomcat/webapps/ROOT
8)查看容器详细信息
docker inspect 容器id或容器名称
例如,docker inspect tomcat1
5、Docker数据卷
1)挂载数据卷
docker run -d -p 宿主机端口:容器内的端口 --name 容器名称 -v 主机目录:容器目录 镜像名称:版本标志(Docker会将容器目录与主机目录进行同步)
例如,docker run -d -p 8089:8080 --name tomcat2 -v /e/docker/tomcat2:/usr/local/tomcat/webapps tomcat(/e表示e盘,需要把相关的目录添加到配置里面)
6、其他
1)将容器打包成一个镜像
docker commit -m "desc" -a "author" tomcat1 my_tomcat:1.0
2)备份镜像
docker save my_tomcat:1.0 -o my-tomcat-1.0.tar
3)加载镜像
docker load -i my-tomcat-1.0.tar