总访问量 ... 次
总访客数 ... 人
2017年的3月1号之后,Docker的版本命名开始发生变化,同时将CE版本和EE版本进行分开。
docker-ce提供了简单的安装和快速的安装,以便可以立即开始开发。docker-ce集成和优化,基础设施。(免费)docker-ee为企业提供最安全的容器平台,以应用为中心的平台。(付费)以下是CentOS或RHEL上使用yum来安装Docker示例。
Docker依赖于系统的一些必要的工具,所以先安装依赖。
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager来设置Docker的稳定仓库。(在阿里云镜像站上面可以找到docker-ce的软件源,使用国内的源速度比较快)。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
docker-ce,社区版,免费。
yum clean allyum makecache fastyum -y install docker-ce
#service 命令的用法
$ sudo service docker start
#systemctl 命令的用法
$ sudo systemctl start docker
docker version
Docker需要用户具有sudo权限,为了避免每次命令都输入sudo,可以把用户加入Docker用户组。
sudo usermod -aG docker $USER
/**
* <p>
* Hello Controller
* </p>
*/
@RestController
@RequestMapping
public class HelloController {
@GetMapping
public String hello() {
return "Hello,From Docker";
}
}
application.yml文件。
server:
port: 8080
servlet:
context-path: /demo
创建一个名字叫Dockerfile的文件,路径任意。

# 基础镜像
FROM openjdk:8-jdk-alpine
# 作者信息
MAINTAINER "whitepure"
# 添加一个存储空间 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 暴露8080端口
EXPOSE 8080
# 添加变量,获取target下的jar包; 如果使用dockerfile-maven-plugin,则会自动替换这里的变量内容
ARG JAR_FILE=target/demo-docker.jar
# 往容器中添加jar包
ADD ${JAR_FILE} app.jar
# 启动镜像自动运行程序
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/urandom","-jar","/app.jar"]
在pom文件加入Docker插件。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<dockerfile-version>1.4.9</dockerfile-version>
</properties>
<build>
<finalName>demo-docker</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${dockerfile-version}</version>
<configuration>
<repository>${project.build.finalName}</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
使用maven打包

Dockerfile 目录,打开并命令行执行。
执行
docker build命令,docker就会根据Dockerfile里你定义好的命令进行构建新的镜像。-t代表要构建的镜像的tag,.代表当前目录,也就是Dockerfile所在的目录。
docker build -t demo-docker .
Docker镜像列表。
docker images
demo-docker,将容器的8080端口映射到主机的9090端口。
docker run -d -p 9090:8080 demo-docker
http://localhost:9090/demo 。

如果要停止Docker镜像,首先获取镜像id,然后在用stop命令停止运行镜像。
docker ps -a: 显示所有的容器,包括未运行的
whitepure@MacBook-Pro demo-docker % docker ps -a
CONTAINER ID IMAGE ... NAMES
421fcff1be87 demo-docker ... affectionate_nightingale
whitepure@MacBook-Pro demo-docker % docker stop 421fcff1be87
421fcff1be87
如果要删除镜像,也需要先获取镜像id,再用rm命令进行删除。
whitepure@MacBook-Pro demo-docker % docker ps -a
CONTAINER ID IMAGE ... NAMES
421fcff1be87 demo-docker ... affectionate_nightingale
whitepure@MacBook-Pro demo-docker % docker rm 421fcff1be87
421fcff1be87