Docker要求:
lunix内核,要求3.8以上
centos7
Docker是一个进程,一启动就两个进程,一个服务,一个守护进程。占用资源就非常少,启动速度非常快,1s。
一台机器上vm,3到10个实例。docker 100到10000。
1.核心概念:
1)镜像images,事先做好一些基础功能(软件),可以在镜像上在来安装新的内容。
2)容器container
3)数据卷volume,把数据映射到linux磁盘目录,业务把数据写入这个目录,容器重新启动时,自己加载数据卷,数据又恢复了。有问题的。(争论,数据库这种方式需求适不适合docker)
4)仓库repository,maven仓库概念一样
1.1.1.1第一步:安装工具包
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装工具包,缺少这些依赖将无法完成
1.1.1.2第二步:设置远程仓库
yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
或者:
yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.1.1.3第三步:安装 yum install docker-ce
1.1.1.4第四步:启动 systemctl start docker
1.1.1.5第五步: 查看版本 docker version
1.1.1.6第六步:校验 docker run hello-world
1.1.2查看Docker版本
docker –help #帮助
docker –v #简单查看版本
docker version #查看版本
docker info #查看信息
1.1.3安装其它产品的两种方式
docker安装其它产品有两种方式
方式一:通过拉取事先做好的镜像,例如下面redis的安装方式
方式二:通过Dockerfile来构建新的镜像,例如下面tomcat的安装方式
1.1.4 docker的其它命令
# docker attach vm1 连接容器
# docker top vm1 查看容器中运行的进程信息
# docker logs vm1 查看容器指令输出 -f 参数可以实时查看
# docker stats vm1 查看容器资源使用率
# docker diff vm1 查看容器修改
# docker run -d –name vm1 ubuntu bash -c "while true; do echo westos; sleep 1; done" 运行容器时执行命令
# docker stop vm1 停止容器
# docker start vm1 启动容器
# docker kill vm1 强制干掉容器
# docker restart vm1 重启容器
# docker pause/unpause vm1 暂停/恢复容器
# docker rm vm1 删除容器
# docker export vm1 > vm1.tar 导出容器
# docker import vm1.tar image 导入容器为镜像 image
# docker container prune 删除所有停止的容器
# docker load -i rhel7.tar 导入镜像
1.1.4.1 示例安装tomcat
方法一
# docker search tomcat 查找Docker Hub上的tomcat镜像
# docker pull tomcat 取官方的镜像
# docker images|grep tomcat 下载完成后可以在本地镜像列表里查到REPOSITORY为tomcat的镜像
方法二
略
1.1.5 使用容器
1.1.5.1运行容器:
docker run –name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
命令说明:
-p 8080:8080:将容器的8080端口映射到主机的8080端口
-v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的test挂载到容器的/test
1.1.5.2 查看容器启动情况
#docker ps
1.1.6通过浏览器访问
http://ip:8080
1.2.1 示列 使用nginx
docker search nginx
docker pull tomcat
docker run –name nginx-test -p 8081:80 -d nginx
nginx-test 容器名称。
the -d设置容器在在后台一直运行。
the -p 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。 执行以上命令会生成一串字符串,类似 c1236c299ce448dbe35bb7003675be0008bd463b3c29e8ed59bc9c701f91bd83,这个表示容器的 ID,一般可作为日志的文件名。
我们可以使用 docker ps 命令查看容器是否有在运行:
浏览器中打开 http://127.0.0.1:8081/
2.上传下载文件
Docker容器向宿主机传送文件
格式:
docker cp container_id:<docker容器内的路径> <本地保存文件的路径>
比如:
cp 1cc872df486e:/usr/local/tomcat/test.war /home/
宿主机向Docker容器传送文件
格式:
docker cp 本地文件的路径 container_id:<docker容器内的路径>
比如:
docker cp /home/test.war 1cc872df486e:/usr/local/tomcat