概述
基础概念
镜像
镜像是一系列可实例化的软件配置环境(不包含数据)。Docker官网有许多镜像可供选择。
容器
可以通过镜像实例化容器。容器与虚拟机类似,但开销小得多。我们可以把一个系统的数据库,web服务器等,在一台服务或多台服务器进行分布式部署。这种部署方案是十分灵活调整和移植的。
安装Docker
mac安装
linux(centos) 安装
使用centos7 安装成功,centos6 失败
系统更新
yum update
安装依赖软件
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install docker-ce docker-ce-cli containerd.io
设置docker位置
通过软连接的方式修改存储目录
mv /var/lib/docker /data/xxx
ln -s /data/xxx /var/lib/docker
docker更换国内源
更改镜像源,系统没有这个文件,直接新增这个文件
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
开启docker并设置开机启动
systemctl start docker
systemctl enable docker
windows 安装
常用命令
显示容器列表
docker ps -l
进入容器操作bash
docker exec -i -t 容器id /bin/bash
修改docker容器自动重启
docker container update --restart=always 容器名
查看容器日志
docker logs 容器名
查看docker容器物理位置
docker inspect 容器名
mac的docker运行在虚拟机下,/var/lib/docker/containers/这个目录在主机中不存在,使用screen
命令进入虚拟机就可以找到了
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
进入空白,回车下
修改容器端口映射
按上面进入docker容器物理位置,修改hostconfig.json(有些修改config.v2.json)中的PortBindings项。
注意:先停止docker容器(docker stop 容器名),再修改hostconfig.json,再重启docker服务,才生效:(
镜像的导出和导入
镜像的导出和导入在项目环境迁移十分有用。
导出
docker save 镜像名1 镜像名2> save.tar
导入
docker load < save.tar
常用容器安装
php安装
在官网上搜索php,选择了php7.1.30
docker run --name ysapp_php-php -v /Users/imac/Documents/project/ysapp-server-php:/www -d --restart=always php:7.1.30-fpm
nginx安装
在官网上搜索nginx,选择了最新的版本镜像
docker pull nginx
创建容器
docker run --name ysapp_php-nginx -p 8010:80 -v /Users/imac/Documents/project/ysapp-server-php:/usr/share/nginx/html -v /Users/imac/Documents/docker_data/ysapp_php/nginx/conf:/etc/nginx/conf.d --link ysapp_php-php:php -d --restart=always nginx
mysql安装
在官网上搜索mysql,选择了5.7版本镜像
docker pull mysql:5.7
创建容器
docker run -p 33060:3306 --name php-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker-compose使用
docker-compose是本地化的docker构建工具,使用配置文件为项目的服务沟通多个容器。
安装
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如果网速不行请用python的pip安装
yum -y install epel-release python-pip
pip install docker-compose
可以测下是否安装成功
docker-compose version