Docker:用来管理软件的软件。可以快速搭建环境。
镜像:用来创建容器的。它是一个特殊的文件系统。可以理解为一个软件的安装包。
容器:就是一个具体软件安装。例如:MySQL容器,Tomcat容器,CentOS容器,Redis容器,RabbitMQ容器,ElasticSearch容器等
镜像和容器关系。类似于Java中类和对象的关系。
镜像相关命令:
docker images 查询本地库所有镜像
docker search 镜像名称 查找某一个镜像
docker pull 镜像名称 下载某一个镜像
docker pull centos/mysql-57-centos7
docker pull tomcat:7-jre7
docker pull nginx
docker pull redis
docker rmi 镜像ID 删除某一个镜像
删除单个镜像(-f 强制删除):docker rmi -f 镜像ID
删除多个镜像:docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除所有镜像:docker rmi -f $(docker images -qa)
容器相关命令:
1.查看相关容器
查看正在运行的容器: docker ps
查看所有容器: docker ps –a
查看最后一次运行的容器:docker ps –l
查看停止的容器: docker ps -f status=exited
2.创建运行容器
①交互式启动容器
docker run -it --name=mycentos7_1 centos:7 /bin/bash
启动容器后直接进入容器内部进行交互。首次exit退出容器,容器会停止运行。如果不想退出停止容器,可以执行ctrl+p+q
重启启动容器,登录容器,再exit退出容器,容器就不会停止。
②守护式启动容器
docker run -id --name=mycentos7_2 centos:7
3.启动停止
docker start mycentos7_1
docker stop mycentos7_1
4.登录容器
docker exec -it mycentos7_1 /bin/bash 登录后可以启用新的进程。
docker attach mycentos7_1 登录后不能启用新的进程。
5.文件拷贝
docker cp /opt/hello.txt mycentos7_1:/usr/local/ 将宿主(Docker所在的系统)上文件拷贝到容器中
docker cp mycentos7_1:/usr/local/hello.txt /opt/ 将容器中文件拷贝到宿主上。
6.目录挂载
docker run -di --name=mycentos7_3 -v /usr/local/myhtml:/usr/local/myhtml centos:7
7.查看容器详情
docker inspect 容器名称(容器ID)
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos7_3
8.删除容器
docker rm mycentos7_3
应用容器部署:常用容器
docker run -di --name=mysql5.7 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
docker run -di --name=mynginx -p 80:80 nginx
docker run -di --name=myredis -p 6379:6379 redis
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d --name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.8.0
迁移与备份:
一个人搭建好环境,将这个环境给其他人使用。实现环境的一致。避免环境的差异带来软件运行的不兼容。
Dockerfile:
用于制作镜像。大家用同一个镜像创建的容器。可以保证容器一致。即:环境就一致。
Docker私服:
公司内部使用私有服务器。私服存放镜像。