docker--学习(二)
目录
一、操作容器相关的命令
- 查看当前所有正在运行的容器
docker ps
- 查看所有容器,包括正在运行、已停止、正在重启等所有状态的容器
docker ps -a
- 停止某个容器
docker stop 容器id
- 重启某个容器
docker restart 容器id
- 启动某个已停止的容器
docker start 容器id
- 以交互的方式进入到某个正在运行的容器内
docker exec -it 容器id bash
- 生成随机的端口映射: -P 指定端口:-p 8080:8080
docker run -P tomcat
- 以守护态方式运行:-d 运行的时候不会占用主进程。
docker run -P -d tomcat
- 给容器起名字
docker run -p 8080:8080 -d --name mytomcat tomcat
- 删除容器的命令
docker rm 容器id
二、数据卷
1.使用数据卷的场景
我们发现 ,当前需要把自己的项目部署成一个docker容器。那么之前的办法是必须要创建一个自定义镜像,然后用自定义镜像生成容器来部署。但是用这种方式,即生成了docker容器,又生成了自定义镜像。比较繁琐。那么目前如果只希望有一个自定义的docker容器,那么就可以使用数据卷的方式。——挂载
2.如何使用数据卷
我们以为,宿主机中的数据是上传到官方镜像中的指定目录内的。实际不然,应该是宿主机指定目录和官方镜像的目录使用的是同一片空间——数据卷最重要的点!
数据卷命令:
docker run -p 9090:8080 -v 宿主机的目录:容器内的目录 tomcat:8.5.23
docker run -p 9090:8080 -v /usr/local/docker/ssm_volume/ROOT/:/usr/local/tomcat/webapps/ROOT/ tomcat:8.5.23
3.使用数据卷解决的问题
- 快速的获得自定义容器
- 让多个容器与宿主机之间实现数据的共享
- 当容器挂掉,但数据依然保存在宿主机的数据卷(磁盘)内。
三、docker-compose
我们可以理解成,它是官方提供的工具,用于快速启动多个容器,实现容器编排。但是,这种容器编排是有局限性,企业里面专业一些的话会使用kubernates来做。
1.为什么要用docker-compose
回顾刚才启动mysql容器的步骤,我们发现,每次启动的命令是非常多的。服务一多,容器一多,容器的启动顺序也需要固定,管理非常不方便,于是docker-compose就孕育而生了。
2.如何使用docker-compose
- 安装
curl -L https://github.com/docker/compose/releases/download/1.24.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- 赋予配置文件可执行的权限,一定不要忘了
chmod +x /usr/local/bin/docker-compose
通过docker-compose -v命令查看版本,如果有就成功了
3.体验docker-compose
编写docker-compose.yml文件,通过docker-compose up命令启动。注意,该命令必须在docker-compose.yml路径下执行
version: '3.1'
services:
web1: #自定义的
image: tomcat:8.5.23 # image 固定写法
container_name: mytomcat1
volumes: # 是一个数组,- 表述数组里的一个元素
- /usr/local/docker/ssm_volume/ROOT:/usr/local/tomcat/webapps/ROOT/
ports:
- 9091:8080
web2:
image: tomcat:8.5.23
container_name: mytomcat2
volumes:
- /usr/local/docker/ssm_volume/ROOT:/usr/local/tomcat/webapps/ROOT/
ports:
- 9092:8080
4.docker-compose相关的命令
注意: 是必须使用在docker-compose.yml路径下的
- 启动docker-compose的命令
docker-compose up # 启动后进入到日志
docker-compose up -d # 以守护态的方式运行
- 查看所有的docker-compose启动的容器
docker-compose ps
- 重启 docker-compose中的所有服务
docker-compose restart
- 停止
docker-compose stop # 停止所有服务
docker-compose down # 停止并删除所有服务
- 启动
docker-compose start # 启动被停止的所有服务