Linux基础知识参考
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
Docker采用 C/S架构 Docker daemon 作为服务端接受来自客户的请求,并处理这些请求(创建、运行、分发容器)。 客户端和服务端既可以运行在一个机器上,也可通过 socket 或者RESTful API 来进行通信。
Docker daemon 一般在宿主主机后台运行,等待接收来自客户端的消息。 Docker 客户端则为用户提供一系列可执行命令,用户用这些命令实现跟 Docker daemon 交互。
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
1下载所需工具包
yum install -y yum-utils
2安装docker(使用阿里云镜像)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3启动docker
systemctl start docker
4测试hello-world
docker run hello-world
docker images 列出本地镜像
docker rmi : 删除本地一个或多少镜像。
- -f : 强制删除
docker search : 从Docker Hub查找镜像
docker run 镜像名称/id:创建一个新的容器并运行一个命令
docker start 容器名 :启动一个或多个已经被停止的容器
docker stop 容器名:停止一个运行中的容器
docker restart 容器名:重启容器
docker kill :杀掉一个运行中的容器。
docker rm :删除一个或多个容器。
docker ps: 列出所有的容器信息
docker events /镜像名: 从服务器获取实时事件
docker logs 容器名 查看指定容器的日志
docker cp 主机文件路径 容器id容器路径 //将主机文件复制到容器中
docker cp 容器id容器路径 主机文件路径 //j将容器中的文件复制到主机
docker diff : 检查容器里文件结构的更改。
docker create :创建一个新的容器但不启动它
用法同 docker run
- docker run --name nginx01 -p 8080:80 -d nginx //运行Nginx容器
参数说明:
- –name nginx01 :容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。
1.docker pull tomcat:9.0 //拉取镜像
2.docker run --name tomcat01 -p 8080:8080 -d tomcat:9.0 //创建并运行容器
3.docker -exec -it tomcat01 //在运行容器中执行命令
4.cp -r webapps.dist/* webapps //复制webapps.dist下的所有文件到webapps目录下
5.exit //退出容器
docker run --name redis-test -p 8002:6379 -d redis //创建并运行容器
docker exec -it redis-test /bin/bash //进入容器运行命令
redis-cli //开启客户端
数据卷是一个可供容器使用的特殊目录,他将主机操作系统目录直接映射进容器,可以将多个容器目录映射到同一个主机目录,实现容器之间数据的共享和同步。
实现主机目录与容器目录映射的俩种方式
具名挂载与匿名挂载类似,不同点在于具名挂载将容器的目录挂载到了指定的宿主机目录,而匿名挂载是将容器的目录挂载到宿主机默认的路径下(/var/lib/docker/volumes/)。
数据卷容器是一个专门提供数据卷供其它容器使用,来实现多个容器之间数据持续同步的容器。
一个列子带你秒懂数据卷容器:
1.创建一个数据卷容器,并使用这个数据卷容器创建俩个容器
2.实现了centos01容器与centos02容器的数据同步
总结:centos-containers提供/home卷让centos01容器和centos02进行挂载,最后实现三个容器/home目录下的数据同步。
什么是DockFile?
DockFile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
1.创建DockerFile文件,内容如下(同时将项目的jar包与DockerFIle文件放到同一个目录下)
FROM openjdk:8-jdk-alpine
MAINTAINER maoyu
ADD docker-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8081
ENTRYPOINT [“java”,"-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2.构建镜像
docker build -t docker-boot . //构建镜像 (注意最后一个 .)
3.创建容器运行
docker run -d --name boot01 -p 8001:8001 docker-boot
4.测试
1.登录账号,push镜像
2.去自己的docker hub仓库查看