Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
Docker应用运行在容器中,使用沙箱机制,相互隔离
Docker如何解决开发、测试、生产环境有差异的问题
Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行
docker基本操作
基本操作-镜像
docker images 镜像列表
docker pull 拉取镜像
docker save 保存镜像成tar文件
docker rmi 删除镜像
docker load 从tart文件加载成镜像
docker --help 帮助文档
基本操作-容器
1.docker run 创建容器
docker run 命令 参数有:
--name :指定容器名称
-p:指定端口映射
-d:让容器后台运行
docker run --name mn -p 80:80 -d nginx:
2.docker logs
docker logs 容器名称
docker logs -f 容器名称 持续监控容器日志
3.docker ps
查看容器状态
4.进入Nginx容器,修改HTML文件内容,添加“传智教育欢迎您”
1.docker exec -it mn bash
docker exec :进入容器内部,执行一个命令
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
mn :要进入的容器的名称
bash:进入容器后执行的命令,bash是一个linux终端交互命令
2.cd /usr/share/nginx/html
3.修改index.html文件
sed -i 's#Welcome to nginx#传智教育欢迎您#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8">#g' index.html
5.停止容器
docker stop 容器名
6.启动容器
docker start 容器名
7.删除容器
docker rm 容器名
基本操作-数据卷
1.创建一个volume
docker volume create
2.显示一个或者多个volume的信息
docker inspect
3.列出所有的volume
docker volume ls
4.删除未使用的volume
docker volume prune
5.删除一个或多个指定的volume
docker volume rm
docker run命令通过 -v 参数挂载文件或目录到容器中:
1. -v volume名称:容器内目录
2. -v 宿主机文件:容器内文件
3. -v 宿主机目录:容器内目录
将数据卷挂载到容器中
docker run \ docker run:创建并运行容器
--name mn \ --name mn :给容器起名mn
-v html:/root/html \ -v html:/root/html:把html数据卷挂载到容器内的/root/html这个目录中
-p 8080:80 -p 8080:80 把宿主机的8080端口映射到容器内的80端口
nginx \ nginx 镜像名称
1.使用-v 参数
2.如果容器运行时volume不存在,会自动被创建出来
将宿主机的目录挂载到容器,将宿主机的文件挂载到容器
docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-p 3306:3306 \
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /tmp/mysql/data:/var/lib/mysql \
-d mysql:5