Docker
必须要在Linux环境下才能运行,windows下运行也是安装虚拟机后才能下载安装运行,菜鸟教程
下载安装
linux 依次执行下边步骤
-
更新 yum
yum update
-
卸载旧的Docker
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine -
安装必要的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
-
配置镜像地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装
yum install docker-ce
-
docker -v
查看版本 -
docker info
查看信息 -
打开阿里云,登录,控制台,镜像服务,有安装 相关步骤。
-
镜像仓库配置,官方是https://hub.docker.com/
我们可以配置阿里云的镜像加速器 -
sudo systemctl daemon-reload 重新加载镜像配置
-
sudo systemctl restart docker 启动docker 适用于centos环境
当执行 docker ps 命令时会有权限不足的问题,必须得加 sudo 权限,我们可以按照以下命名解决
sudo groupadd docker
sudo usermod -aG docker $USER #此处的USER是系统变量,直接使用该语句即可
# 切换当前用户组为Docker用户组,会以新的shell 去执行,所以需要每次都切换
newgrp docker
镜像
镜像下载版本可以在https://hub.docker.com中搜索
- docker images 查看已有镜像
- docker search [redis] 在仓库中搜索镜像
- docker pull redis:5.0 下载镜像 [镜像名:版本号]
- docker rmi [image id] 删除镜像
- docker rmi [镜像名:版本号] 删除镜像
- docker images -q 查看所有镜像的ID
- docker rmi
docker images -q
把所有有镜像的ID 当作参数传入rmi命令,删除所有镜像
容器
可以通过镜像创建容器
- docker run -i -t --name MyCentOS centos:7 /bin/bash 使用centos创建一个名字为MyCentOS的容器,并且直接进入到命令行 -i: 交互式操作,允许对容器内的终端进行交互。-t: 在容器内创建新终端。/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。通过-i -t 创建的容器,创建完成皇后会直接进入到容器,退出后容器直接关闭
- exit 退出容器
- docker ps 查看当前正在运行的容器
- docker ps -a 查看所有容器
- docker run -i -d --name CentOS centos:7 创建容器,并在后台运行
- docker exec -i -t CentOS /bin/bash 进入容器
- docker stop [容器名] 停止容器
- docker start [容器名]
- docker rm [容器名或容器ID] 删除容器
- docker inspect [容器名] 查看容器信息
数据卷
相当于是一个文件系统(磁盘),可以挂载到容器中,宿主机中,用于文件的交换
- docker run -i -t --name=MyCentOS -v /root/data:/root/data_container centos:7 /bin/bash
- /root/data 宿主机的目录,没有则会创建
- /root/data_container 代表容器的目录,没有会自动创建
数据卷容器
- docker run -i -t --name=MyCentOS -v /root/data centos:7 /bin/bash
安装Mysql
docker run -p 3306:3306 --name mysql
-v $pwd/conf:/etc/mysql/conf.d \ -v $
pwd/logs:/etc/logs
-v $pwd/data:/var/lib/mysql
-e MYSQL_ROOT_PSSWORD=root
-e MYSQL_ALLOW_EMPTY_PASSWORD=root
-e MYSQL_RANDOM_ROOT_PASSWORD=root
8.0版本的Mysql要加如下命令
docker run -p 3306:3306 --name mysql -v $pwd/conf:/etc/mysql/conf.d -v $
pwd/logs:/etc/logs -v $pwd/data:/var/lib/mysql -e MYSQL_ROOT_PSSWORD=root -e MYSQL_ALLOW_EMPTY_PASSWORD=root -e MYSQL_RANDOM_ROOT_PASSWORD=root mysql bash
进入容器
docker exec -i -t mysql bash
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
进入配置文件修改跳过密码
卸载Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine