docker_使用

系统环境准备

docker最低支持centos7且在64位平台上,内核版本在3.10以上
[root@msi ~ 10:48:11]#uname -r
3.10.0-693.el7.x86_64

须知

Docker 是一个开源的商业产品,
有两个版本:
  社区版(Community Edition,缩写为 CE)
  企业版(Enterprise Edition,缩写为 EE)企业版包含了一些收费服务

Centos安装docker

方式一
请遵循官方安装方式!!!有点卡
https://docs.docker.com/install/linux/docker-ce/centos/#upgrade-docker-after-using-the-convenience-script

1.卸载旧版本
sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-selinux 
                  docker-engine-selinux 
                  docker-engine

2.设置存储库
sudo yum install -y yum-utils 
  device-mapper-persistent-data 
  lvm2

sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

3.安装docker社区版
sudo yum install docker-ce
4.启动关闭docker
systemctl start docker

方式二

#可以配置最新版本的,docker官方的软件仓库,也可以使用阿里的epel仓库下载
yum install docker-server docker -y
#通过yum安装的docker,直接使用systemctl start docker 启动 
#检查docker版本,是否安装成功

docker version  
#docker加速器
Docker镜像加速器
#执行命令 
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

docker pull  centos  #默认去dockerhub下载一个centos镜像文件 
docker pull  hello-world  #下载镜像 
docker run  镜像id  #运行镜像,生成容器,并且检测镜像是否存在,不存在自动docker Pull
docker  run  -it  centos  /bin/bash  
	#-i 是交互式的操作
	#  -t  是开启一个终端

#下载一个ubuntu镜像,且进入这个ubuntu容器空间内
docker  run -it  ubuntu  /bin/bash  

	
#进入centos容器内,并且修改容器内的信息,然后提交为新的镜像 
		docker run  -it  centos  /bin/bash   
	#然后 下载一个vim,退出这个容器
		exit
	#提交这个容器记录,为新的镜像
		docker commit  容器id    新的镜像名  

#导出本地的docker镜像
docker save  容器id   >  镜像压缩文件
#导入docker镜像文件
docker load <   镜像压缩文件 
#运行一个活着的容器
docker run -d centos /bin/sh -c "while true;do echo 你看这个灯,它又大又亮; sleep 1;done"
	# -d 后台运行 
	# /bin/sh  Linux的shell解释器
	#  -c  指定一段shell脚本 
#给运行的容器添加一个名字 
[root@s24_linux ~]# docker run --name s24wuyifan  -d centos /bin/sh -c "while true;do echo 你看这个灯,它又大又亮; sleep 1;done"
f80915521b822801b2186cd66e3a69011beda4cfcec60076409c62e9d03ddf4f


#运行一个web程序,在容器中 ,要对外进行端口暴露
docker run -d -p 8090:5000 training/webapp python app.py
	# -d 后台运行  
	#  -p  指定端口映射   宿主机的 9000映射到容器内的5000 (宿主机的端口你可以自由定义,容器的端口根据代码决定)
	# -P  随机端口映射 ,宿主机会随机生成一个端口,映射到容器的5000  
	
#暂停一个正在运行的容器记录
docker stop 容器id  
	
#再次运行一个容器
docker start 容器id  	

#修改docker镜像的名字
docker tag 镜像id    新的镜像名  

docker容器挂掉后,数据会丢吗
不会,docker容器挂掉后,可以通过docker ps -a 看到容器记录,不会释放,容器记录删掉后,数据就释放了

删除镜像

docker   rmi  镜像id前三位即可 #删除镜像,必须清除所有的容器记录依赖 
docker rm   容器id  #删除容器记录,必须是挂掉的记录才能删除 
docker  rm  `docker ps -aq`  #批量删除容器记录  
docker rmi  `docker images -aq`  #批量删除镜像记录 

查镜像


docker search  centos  #搜索centos相关的镜像 
docker  image ls  #查看机器上所有的镜像
docker images  #同上 意思一样
docker ps  #查看正在运行的docker容器(必须有一个进程在容器中,后台运行,这个容器才不会挂掉)
docker ps -a  #查看所有运行过的容器记录(挂掉的,和正在运行的记录)

docker  logs  容器id/容器名   #查看容器内所有的日志 
docker logs -f  容器id  #实时刷新容器内的日志 


#如何进入一个活着的容器 
docker  exec  -it  容器id  /bin/bash   

#查看docker的端口转发情况
docker port 容器id  


#dockerfile是全大写的

#dockerfile的学习 
FROM scratch #制作base image 基础镜像,尽量使用官方的image作为base image
FROM centos #使用base image
FROM ubuntu:14.04 #带有tag的base image
#FROM指令,是指定你的docker镜像以哪一个操作系统为基础去运行
# FROM  ubuntu  
#FROM  centos:7  



LABEL version=“1.0” #容器元信息,帮助信息,Metadata,类似于代码注释
LABEL maintainer=“yc_uuu@163.com"

#对于复杂的RUN命令,避免无用的分层,多条命令用反斜线换行,合成一条命令!
RUN yum update && yum install -y vim 
    Python-dev #反斜线换行
RUN /bin/bash -c "source $HOME/.bashrc;echo $HOME”
# RUN指令是一个完成指令,你写什么就运行什么

道,可道,非常道;名,可名,非常名。
原文地址:https://www.cnblogs.com/SkyRabbit/p/14421367.html