Docker 基本概念
- Docker可以看做是一个高度浓缩、简易的linux系统,比如centos的镜像只有170M(普通linux系统有4G)
- 镜像(image)、容器(container)、仓库(repository)
镜像(image)
镜像类似模板(可以用java中类比喻,比如Person类)
容器(container)
容器是用镜像创建的实例,可以创建一个或多个实例(可以用java中实例对象比喻)
Person p1=new Person();
Person p2=new Person();
Person p3=new Person();
p1、p2、p3 就是三个容器,都来自于Person这个模板
- 可以吧容器看做简易版的Linux环境和运行在环境中的应用程序,容器有独立的root用户权限、进程空间、用户空间、网络空间等
- 一个容易一般运行一个服务,比如一个容器运行mysql服务,另外一个容器运行redis服务
仓库(repository)
仓库是集中存放镜像的场所,最大的仓库是Docker Hub,类似maven的中央仓库
Docker 命令
- 注意:Docker 安装和配置在centos6与centos7环境有区别
//启动(CentOs7.0以上)
systemctl start docker
//停止docker 服务
systemctl stop docker
//重启docker服务
systemctl restart docker
//查看docker进程(进程上可以看到镜像仓库地址)
ps -ef|grep docker
//常看当前docker 信息
docker info
//帮助
docker --help
镜像相关命令
//查看本地镜像
docker images
docker images -a //本地所有镜像 a=all
docker search //docker hub 上搜索
//找starts大于30的tomcat镜像
docker search -s 30 tomcat
//从中央仓库拉取tomcat镜像到本地
//docker pull tomcat 等价于docker pull tomcat:latest(版本号不写默认为latest)
docker pull tomcat
//删除镜像(rmi--> rm image) 无版本号时默认为latest
docker rmi 镜像id或镜像名
docker rmi tomcat//删除tomcat镜像
docker rmi -f tomcat //强制删除
docker rmi -f tomcat nginx //强制删除tomcat nginx镜像,删除多个用空格分开
//列出本地镜像id
docker images -q
//列出本地镜像的全部id,批量删除或清库时用
docker images -qa
docker run xxxx
docker pull xxxx
docker build xxxx
制作镜像
//将当前运行的容器发布为一个新的镜像 -a 作者、-m 说明 9fa6rewruw为容器ID ,后面的为镜像名称和版本号
docker commit -a="zhousq" -m="image descript" 9fa6rewruw rock/rocktomcat:1.0
容器相关命令
//新建并启动容器,-v 的v为volume(卷)缩写,表示数据(-v /localDir:/dockerDir,先是宿主机目录,后是容器内的目录)
docker run 很多参数
//查看当前docker 所有运行的容器进程
docker ps
//查看所有容器
docker ps -a
//删除指定容器
docker rm 容器ID
//删除所有容器
docker rm $(docker ps -a -q)
//启动容器
docker start 容器ID
//停止容器
docker stop 容器ID
//重启容器
docker restart 容器ID
//进入mysql docker控制台
docker exec -it 2cbb0f246353 /bin/bash
//退出不关闭容器
Ctrl+P+Q
//退出并关闭容器
exit
//从容器copy 文件到本地
docker cp fa11763a0096:/fdfs_conf/storage.conf /opt/temp/
//从本地copy 文件到容器
docker cp /opt/temp/storage.conf fa11763a0096:/fdfs_conf/
// 获取容器/镜像的元数据
docker inspect 容器ID
- docker run xxx 运行流程:先在本地仓库中查找是否有镜像,没有则到远程仓库中pull,类似maven依赖下载流程,如下
CentOs7.X安装Docker-ce
//更新yum软件包索引
yum update
//1.安装工具包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
//2.安装仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//更新yum软件包
yum makecache fast
//安装docker-ce
yum -y install docker-ce
//启动docker
systemctl start docker
//查看docker版本
docker version
//配置阿里镜像加速
mkdir -p /etc/docker
//{"registry-mirrors":["https://ximikymi.mirror.aliyuncs.com"]}
vi /etc/docker/daemon.json
//重载配置
systemctl daemon-reload
//重启docker
systemctl restart docker
//查看进程情况
ps -ef|grep docker|grep -v grep
CentOs7.X 卸载Docker-ce
//停docker
systemctl stop docker
//卸载docker
yum -y remove docker-ce
//删除库
rm -rf /var/lib/docker
CentOs7.X 安装mysql5.6
//拉去镜像
docker pull mysql:5.6
//启动容器 -p 端口映射,--name 别名 -v 配置(配置文件、日志、数据文件,-e root密码),-d 后台启动
docker run \
-d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql5.6-docker \
-v /opt/application/mysql-docker/logs:/logs \
-v /opt/application/mysql-docker/data:/var/lib/mysql mysql:5.6
CentOs7.X 卸载mysql5.7
//获取容器ID
docker ps
//停止容器
docker stop f595c6efb240
//删除容器
docker rm f595c6efb240
//删除宿主机上的mysql文件
cd /opt/application/mysql-docker/
rm -rf *
//查看镜像id
docker images
//删除镜像
docker rmi 7faa3c53e6d6
CentOs7.X 安装rabbitMQ
//获取镜像 带management的版本表示有web功能
docker pull rabbitmq:3.7.15-management
//启动容器15672 为web端口
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq-docker 476495614692
CentOs7.X 安装vi
//docker 镜像一般没有vi编辑器,若需要编辑内部文件需要安装
//这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
apt-get update
//安装
apt-get install vim
CentOs7.X 安装redis
//获取镜像,最新版
docker pull redis
//运行容器
docker run -d -p 6379:6379 --name redis-docker redis
CentOs7.X 安装fastDFS
//获取镜像,最新版
docker pull season/fastdfs
//创建tracker容器 --net=host 表示网络同宿主机
docker run -it -d --name trakcer-docker \
-v /opt/application/fastdfs-docker/tracker_data:/fastdfs/tracker/data \
--net=host season/fastdfs tracker
//创建 storage容器
docker run -it -d --name storage-docker \
-v /opt/application/fastdfs-docker/storage_data:/fastdfs/storage/data \
-v /opt/application/fastdfs-docker/store_path:/fastdfs/store_path \
--net=host \
-e TRACKER_SERVER:172.20.10.6:22122 \
-e GROUP_NAME=group1 season/fastdfs storage
// tracker、storage容器启动后,配置服务
//进入storage容器,到storage的配置文件中配置http访问的端口,配置文件在fdfs_conf目录下的storage.conf。
docker exec -it 2cbb0f246353 /bin/bash
cd fdfs_conf
more storage.conf //可以查看配置文件的原始信息
//ctrl+p+q,退出容器修改storage.conf
//现将容器中的配置文件copy到宿主机上修改后再copy进去
docker cp fa11763a0096:/fdfs_conf/storage.conf /opt/temp/ //copy 到/opt/temp
cd /opt/temp/
vi storage.conf //修改tracker_server=192.168.209.121:22122的IP为172.20.10.6
docker cp /opt/temp/storage.conf fa11763a0096:/fdfs_conf/ //将修改后的配置文件copy到容器里面去
docker restart fa11763a0096 //重启容器
docker exec -it fa11763a0096 /bin/bash //查看容器的关联情况
cd fdfs_conf
fdfs_monitor storage.conf //可以查看group 信息
CentOs7.X 安装libreoffice/online
//获取镜像
docker pull libreoffice/online