#### docker 学习笔记 ####
说明:centoS系统root下操作
一.安装docker
##更新环境
yum update
##安装docker
yum install docker
##启动docker
systemctl start docker
##开机启动
systemctl enable docker
##看看docker是否安装和启动成功
docker --help
二.使用docker
##获取镜像(先判断本地是否有此镜像,如果没有,先下载,再执行)
docker run Hello-world
##查看本地镜像列表
docker images
##查看容器
docker ps -a
三、创建自己的镜像
##基于别人的镜像进行修改(下载hub上的镜像来修改)
docker run docker/whalesay cowsay
##创建镜像编辑文件
cd /root
mkdir mydocker
touch Dockerfile
vi Dockerfile
##编辑文件
#基于以下镜像
FROM docker/whalesay:lastest
RUN apt-get update && apt-get install fortunes
CMD /usr/games/fortune -a | cowsay
##编译镜像
docker build -t docker-whale .
##编译好查看镜像列表
docker images
##执行自己的镜像
docker run docker-whale
四、上传自己的镜像
##先去https://hub.docker.com 网站创建用户
比如:username/email/password=liliang14/liliang14@qq.com/***
##修改镜像文件的tag(username/docker-whale) (docker images)
docker tag xxx(id) liliang14/imagename(列出的镜像名):lastest
##登录hub(命令行)
docker login --username=liliang14 --email=liliang14@qq.com
##上传
docker push liliang14/docker-whale
五、下载自己的镜像
##删除本地镜像
docker rmi -f id(image id)
##获取服务器镜像
docker pull liliang/docker-whale
六、创建私有镜像仓库(docker镜像安装)
##此私有仓库已创建,并且为守护进程,镜像存在/root/myregistry
docker run -d -p 5000:5000 -v /root/myregistry:/tmp/registry-dev registry
七、使用私有仓库
##修改配置/etc/sysconfig/docker,其中ip为启动registry容器的服务器ip,即私有仓库地址
OPTIONS='--selinux-enabled --insecure-registry 192.168.238.129:5000'
##创建自己的镜像文件
##修改镜像文件tag为 192.168.238.129:5000/imagename
##上传镜像文件到私有仓库
docker push 192.168.238.129:5000/imagename
##查看私有仓库镜像列表
http://192.168.238.129:5000/v2/_catalog
##查看镜像版本列表
http://192.168.238.129:5000/v2/imagename/tags/list
八、容器
##运行镜像会启动新的容器
docker run -d(守护进程模式)
##列出容器
docker ps -a
##删除容器
docker rm NAMES..
##重启容器
docker restart NAMES...
##终止容器
docker stop NAMES..
##启动容器,并挂载本地目录给容器访问 --name 指定容器名称 --privileged=true容器能访问文件
docker run -i -t -v /root/tools:/opt/tools --name centos_java_tomcat --privileged=true 192.168.238.129:5000/centos /bin/bash
九、进入容器方法
#attach--退出会中断运行的容器,不推荐使用
docker attach containername(容器名称)
#nsenter
#查看容器进程
docker inspect -f {{.State.Pid}} containername(容器名称)
sudo nsenter --target PID(容器进程id) --mount --uts --ipc --net --pid
说明:centoS系统root下操作
一.安装docker
##更新环境
yum update
##安装docker
yum install docker
##启动docker
systemctl start docker
##开机启动
systemctl enable docker
##看看docker是否安装和启动成功
docker --help
二.使用docker
##获取镜像(先判断本地是否有此镜像,如果没有,先下载,再执行)
docker run Hello-world
##查看本地镜像列表
docker images
##查看容器
docker ps -a
三、创建自己的镜像
##基于别人的镜像进行修改(下载hub上的镜像来修改)
docker run docker/whalesay cowsay
##创建镜像编辑文件
cd /root
mkdir mydocker
touch Dockerfile
vi Dockerfile
##编辑文件
#基于以下镜像
FROM docker/whalesay:lastest
RUN apt-get update && apt-get install fortunes
CMD /usr/games/fortune -a | cowsay
##编译镜像
docker build -t docker-whale .
##编译好查看镜像列表
docker images
##执行自己的镜像
docker run docker-whale
四、上传自己的镜像
##先去https://hub.docker.com 网站创建用户
比如:username/email/password=liliang14/liliang14@qq.com/***
##修改镜像文件的tag(username/docker-whale) (docker images)
docker tag xxx(id) liliang14/imagename(列出的镜像名):lastest
##登录hub(命令行)
docker login --username=liliang14 --email=liliang14@qq.com
##上传
docker push liliang14/docker-whale
五、下载自己的镜像
##删除本地镜像
docker rmi -f id(image id)
##获取服务器镜像
docker pull liliang/docker-whale
六、创建私有镜像仓库(docker镜像安装)
##此私有仓库已创建,并且为守护进程,镜像存在/root/myregistry
docker run -d -p 5000:5000 -v /root/myregistry:/tmp/registry-dev registry
七、使用私有仓库
##修改配置/etc/sysconfig/docker,其中ip为启动registry容器的服务器ip,即私有仓库地址
OPTIONS='--selinux-enabled --insecure-registry 192.168.238.129:5000'
##创建自己的镜像文件
##修改镜像文件tag为 192.168.238.129:5000/imagename
##上传镜像文件到私有仓库
docker push 192.168.238.129:5000/imagename
##查看私有仓库镜像列表
http://192.168.238.129:5000/v2/_catalog
##查看镜像版本列表
http://192.168.238.129:5000/v2/imagename/tags/list
八、容器
##运行镜像会启动新的容器
docker run -d(守护进程模式)
##列出容器
docker ps -a
##删除容器
docker rm NAMES..
##重启容器
docker restart NAMES...
##终止容器
docker stop NAMES..
##启动容器,并挂载本地目录给容器访问 --name 指定容器名称 --privileged=true容器能访问文件
docker run -i -t -v /root/tools:/opt/tools --name centos_java_tomcat --privileged=true 192.168.238.129:5000/centos /bin/bash
九、进入容器方法
#attach--退出会中断运行的容器,不推荐使用
docker attach containername(容器名称)
#nsenter
#查看容器进程
docker inspect -f {{.State.Pid}} containername(容器名称)
sudo nsenter --target PID(容器进程id) --mount --uts --ipc --net --pid