Docker的使用
1、仓库
1、Docker 仓库是用来包含镜像的位置,仓库支持的操作类似git,当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
2、Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库。
2.1、hub.docker.com(docker自己提供的仓库)
2.2、c.163.com(网易提供的仓库)
2、镜像
1、Docker的镜像概念类似于虚拟机里的镜像,是一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。例如:一个镜像可以包含一个完整的 linux 操作系统环境,里面仅安装了Mysql或用户需要的其它应用程序。
2、Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
3、容器
1、Docker 利用容器来运行应用。
2、Docker容器是由Docker镜像创建的运行实例。Docker容器类似虚拟机,可以支持的操作包括启动,停止,删除等。每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。
3、可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
4、安装(Linux系统)
1、检查内核版本,返回的值大于3.10即可
uname -r
2、移除旧版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
3、安装一些工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4、添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、安装最新版本
yum install -y docker-ce
6、或者选择版本安装
#查询版本列表 yum list docker-ce --showduplicates | sort -r #指定版本安装 yum install -y docker-ce-17.09.0.ce
7、启动docker
systemctl start docker.service
8、验证是否成功安装
docker version(如果出现Client和Server,则说明安装成功) Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:23:03 2018 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 18.06.1-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:25:29 2018 OS/Arch: linux/amd64 Experimental: false
5、基本命令
1、载入镜像
docker pull 镜像名
2、查看所有docker镜像
docker images
3、运行镜像(前台运行,可以使用ctrl+c结束)
docker run 镜像名
#执行过程:
1、首先将命令发送到本地的Docker Deamon,Docker Deamon会先查找本地的查找镜像,存在就会执行镜像
2、如果找不到,会去远程仓库下载镜像,下载之后会运行镜像,变成容器
如果报错,可以尝试使用yum update
4、运行镜像(后台运行)
docker run -d 镜像名
5、查看当前docker内的运行的镜像
docker ps
6、进入docker容器中,执行命令,bash(使用shell命令)
docker exec -it 容器名/容器id bash
#进入容器内后,会给你一个模拟linux的交互模式的终端,这时使用ps查看进程,会看到没有该命令,你可以使用下面的指令,在该容器内安装ps
apt-get update && apt-get install procps
7、停止镜像
docker stop 镜像id
8、重启镜像
docker restart 镜像id
6、网络类型
1、host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
2、Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
3、None:该模式关闭了容器的网络功能。
4、Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。(默认使用的模式)
5、将宿主机的端口和容器内的端口相关联
#映射主机的端口8080,到容器内的端口80,命令中是小写p docker run -d -p 8080:80 镜像名 #映射容器内所有端口,到主机的随机端口,命令中的是大写P docker run -d -P 镜像名
6、docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:
host模式,使用--net = host指定。 container模式,使用--net = container:NAMEorID指定。 无模式,使用--net =无指定。 bridge模式,使用--net = bridge指定,默认设置。
7、制作自己的镜像
1、首先准备自己的web项目,然后达成war包
2、写一个DockerFile
#先下载tomcat的镜像 vi DockerFile #在文件中,写入 from tomcat的镜像名 MAINTAINER youName youEmail COPY 项目war包名 /usr/local/tomcat/webapps
3、使用docker build编译你的DockerFile,.表示当前目录,将新建的Docker指定一个tag
docker build -t 镜像名:latest .
4、启动自己制作的镜像
docker run -d -p 8888:8080 镜像名
5、下载和使用mysql镜像
#先下载好mysql的镜像 #启动 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=order 镜像名