docker images
docker run -d --name 容器名称 -p 暴露的端口号 镜像的名字
docker ps -a 查看所有运行的容器
-q 查看当前正在运行的容器
docker rmi -f 删除所有镜像
docker rm -f 删除容器
rm 删除容器 正在运行中的不能删除掉
docker inspect 查看容器的详细信息
docker logs 查看容器运行的日志
docker search 查询镜像名字
为什么要进行磁盘的挂载,因为为了进行内存的可持久化。因为容器一旦删除它里面的数据就没有了。
docker run -it -d -v 容器内的挂在路径:主机的挂载路径 启动的版本
-it 交互式
-d 是放在后台运行
-v 磁盘挂载
针对于实现数据持久化有两种的方式
第一种是通过 -v的形式实现数据的持久化 这里有匿名和具名挂载,我们通常用的最多的是具名的一个挂载
第二种是通过dockerfile中的volume的挂载
这两种方式是都可以实现数据持久化
数据卷容器
实现不同容器之间的一个挂载是通过 --volume-from 这样的一种方式来实现容器之间的数据持久化。
重中之重 dockerfile
docker build 创建镜像
总结
dcoker的基本组成
docker网络
容器内部的网络是否能够ping通容器外部的网络??
容器和容器之间是可以ping通的 并且docker使用的是一个桥接
查看容器内部的ip地址 ip addr
--link
docker网络
docker-compose和dockerfile的区别 docker-compose是用来管理容器而dockerfile是用来管理镜像的。
docker-compose命令
1.基于docker-compose.yml启动管理的容器
docker-compose up -d
2.关闭并删除容器
docker-compose down
3.开启关闭重启已经存在的由docker-compose维护的容器
docker-compose start|stop|restart
4.查看由docker-compose管理的容器
docker-compose ps
5.查看日志
docker-compose logs -f
创建一个mysql的容器
首先去官网下载镜像
docker pull mysql
启动一个镜像
docker run -it -d -p 3306:3306 --name 别名 容器的id
进入镜像
docker exec -it 容器id /bin/bash
创建一个Tomcat容器
首先去官网下载一个Tomcat镜像
docker pull tomcat
启动一个镜像
docker run -it -d -p 8080:8080 --name 别名 容器的id
进入镜像
docker exec -it 容器id /bin/bash
怎样把一个写好的web项目放入到tomcat中
docker cp 文件名字 容器id:容器中的路径
docker-compose
version: '3.8'
services:
mysql: # 服务的名称
restart: always # 代表只要Docker启动,那么这个容器就跟着一起启动
image: daocloud.io/library/mysql:5.7.5-m15 # 指定镜像路径
container_name: mysql # 指定容器名称
ports:
- 3306:3306 # 指定端口号的映射
environment:
MYSQL_ROOT_PASSWORD: 123456 # 指定MySQL的ROOT用户登录密码
TZ: Asia/Shanghai # 指定时区
volumes:
- /home/docker_mysql/:/var/lib/mysql # 映射数据卷
tomcat:
restart: always # 代表只要Docker启动,那么这个容器就跟着一起启动
image: daocloud.io/library/tomcat:8.5.15-jre8 # 指定镜像路径
container_name: tomcat # 指定容器名称
ports:
- 8080:8080
environment:
TZ: Asia/Shanghai
volumes:
- /home/tomcat_webapps:/usr/local/tomcat/webapps
- /home/tomcat_logs:/usr/local/tomcat/logs
docker-compose和dockerfile的综合使用
使用docker-compose.yml文件,以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器
# yml文件
version: '3.8'
services:
web-demo:
restart: always
build: # 构建自定义镜像
context: ../ # 指定Dockerfile文件所在路径
dockerfile: Dockerfile # 指定Dockerfile文件名称
image: demo:1.0
container_name: demo
ports:
8081:8080
environment:
TZ: Asia/Shanghai
Dockerfile文件
from daocloud.io/library/tomcat:8.5.15-jre8
copy demo.war /usr/local/tomcat/webapps