docker是基于Linux内核经go语言开发出来的,显著优点可以快速部署测试系统和应用,占用资源小,响应速度快。
镜像(image)理解成:安装包;
容器(conainer)运行起来;
仓库(repository) 存放image的地方 分为公有: Docker Hub和私有
查找镜像
拉取镜像:docker pull httpd
查看删除镜像
重启docker服务
运行镜像文件
守护式运行(后台运行)docker run -d imageName:tag (tag不写默认latest): daemon
交互式运行(可以和容器交互)
删除镜像文件 docker rmi imageName
查看容器状态:docker ps -a
删除容器:docker rm -f cid
这个不加 -f 也是OK的 因为容器已经停止运行了
进入容器:docker exec -it cid /bin/bash
重启:docker restart cid
停止:docker stop cid
问题1:外部访问问题
访问宿主机IP1∶端口号1《---》容器1应用端口号a解决方案:
run容器时加上端口映射端口1: a (访问宿主机器端口1就访问了容器应用a)
docker run -d -p宿主机端口1:容器的应用端口a 镜像名:tag
问题2:磁盘访问问题
持久化数据对容器里的目录(虚拟 linux的目录)需要持久化映射
解决方案:数据卷操作 docker volume create/inspect/ls/rm/prune
完整的命令:
docker run -d -p宿主机端口1: 容器的应用端口a -v 数据卷名: 容器内路径镜像名: tag
举个栗子:LAMP 框架 论坛网站部署
Linux+Apache+Mysql+Php: 容器
镜像:离线方式
免费资源:
常见问题
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因:docker服务没有启动
service docker start