docker三大核心:镜像,容器,仓库
step1:安装docker并启动服务,设置开机自启
yum -y install docker
systemctl start docker
systemctl enable docker =====》ifconfig时会产生多一张网卡docker0,虚拟网桥
**********************************************************************************************
docker version:显示版本号
查看pull/push帮助:docker help pull/push 或者 man docker-pull/docker-push
下载镜像:docker search 关键字 //查找
docker pull 镜像名(绝对路径:名称+标识)
上传镜像:docker push 名称:标识
导出:
docker save 名称:标识 -o(>) tar包
导入:
docker load -i(<) tar包
查看本机存在镜像:
docker images
file 文件名 //查看文件类型
启动镜像生成容器:
docker run -itd (后台创建) 名称:标识 /bin/bash(解释器,可缺省)
*******************************************************
docker命令:
docker images //查看镜像列表
docker pull xx:标识 //下载镜像
docker push xx:标识 //上传镜像
docker history xx:标识 //查看镜像制作历史
docker inspect xx:标识 //查看镜像底层信息
docker inspect -f "{{.NetworkSettings.IPAddress}}" 容器id //查看容器ip地址
docker rmi xx:标识 //删除本地镜像
docker save xx:标识 -o或> tar包 //导出镜像为tar包
docker load -i或< tar包 //导入镜像
docker search 关键字 //搜索关键字的镜像
docker tag xx:标识 xx:标识 //相当于创建一个快捷方式
容器命令:
docker run -itd xx:标识 /bin/bash //运行容器
docker ps [-q] //查看开机容器列表
============docker container ls
docker ps -a //查看所有容器列表
docker start/stop/restart 容器id //启动/关闭/重启容器
docker inspect 容器id //查看容器信息
docker inspect -f "{{.NetworkSettings.IPAddress}}" 可用于查看IP
docker rm 容器id //删除容器,一般关机再删除
docker top 容器id //在容器外执行命令,相当于ps
进入容器:
docker attach 容器id //exit会使得容器关闭,ctrl+p+q退出则不会使得容器关闭
docker exec -it 容器id或者容器名称 bash //exit不会使得容器关闭
2.自定义镜像
step1:下载原始镜像run运行,并且进入容器修改数据,安装软件包
step2:打包镜像
docker commit 容器id 镜像名:标识
3.dockerfile文件的创建,名称固定为Dockerfile
step1:写入Dockerfile文件
FROM 基础镜像
MAINTAINER:镜像创建者信息(说明)
EXPOSE:开放的端口
RUN 在容器内执行的命令(可以多个) //制作镜像时执行的命令
ADD(相当于CP) 真机本地路径 容器里面的路径 //复制文件到容器
//dockerfile必须和本机文件在同一个目录下
CMD:容器启动时执行的命令,只能有一条CMD,但可以带脚本,启动多个服务
CMD ["/bin/ls","-a","-l"]
WORKDIR(相当于永久的cd): //定义容器默认工作目录
WORKDIR /tmp=====cd /tmp
ENV:设置环境变量(在镜像中设置)
step2:依据dockerfile文件创建镜像
docker build -t 名称:标识 dockerfile所在路径(/opt)
step3:依据镜像运行容器
docker run -itd xx:标识 /bin/bash
3.镜像仓库
step1:安装docker,docker-distribution软件包
yum -y install docker docker-distribution
systemctl start docker docker-distribution
systemctl enable docker docker-distribution
step2:修改配置文件/etc/sysconfig/docker
13,24
INSECURE_REGISTRY='--insecure-registry 域名或IP:5000' <===========/etc/hosts
ADD_REGISTRY='--add-registry 域名或IP:5000'
step3:重启docker,docker-distribution服务
systemctl restart docker
step4:为镜像改标签
docker tag 名称:标识 IP或域名:5000/镜像:标签 (写入ip只能ip访问,写入域名只能域名访问)
step5:上传镜像
docker push IP或域名:5000/镜像:标签
查看:
curl http://127.0.0.1:5000/v2/_catalog //查看镜像
curl http://127.0.0.1:5000/v2/镜像名/tags/list //查看标签
客户端:
Step1:安装docker软件包
yum -y install docker
systemctl start docker
systemctl enable docker
Step2:更改/etc/sysconfig/docker
13,24
INSECURE_REGISTRY='--insecure-registry 域名或IP:5000' <===========/etc/hosts
ADD_REGISTRY='--add-registry 域名或IP:5000'
step3:docker images 查看镜像
docker run -itd(后台运行) -p 真机的端口:容器端口 -v 真机文件:容器文件 --name 容器名称 --privileged=true 镜像名:标识 /usr/sbin/init
/usr/sbin/init: 使得systemctl在容器内可以使用
docker run -itd --name zentao -p 80:80 -v /opt/docker_zentao/script:/app/zentaopms -v /opt/docker_zentao/data:/var/lib/mysql zentao:latest
--name: 名称
-p: 端口映射
-v: 文件映射