一、环境介绍
Windows、 VMware15 、Centos7.3(虚拟机)内核版本3.10.0-514.el7.x86_64
docker安装要求内核版本需要3.10及以上。
二、安装过程
1、查看内核版本
uname -r
2、安装管理repository及扩展包的工具、为的是安装yum-config-manager
yum-config-manager命令是对资源库(/etc/yum.repos.d/下的文件)进行增删改查
yum -y install yum-utils
3、修改docker的源指向阿里的源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、更新yum源
yum update
输入y确认、等待升级和更新
5、安装Docker必要的安装包
yum install -y device-mapper-persistent-data lvm2
6、查看源中所有的版本信息
yum list docker-ce --showduplicates | sort -r
7、安装最新稳定版
yum install docker-ce
中间输入y确定安装
输入两次y确认密钥
8、安装指定版本(非必须)
yum install docker-ce-17.12.0.ce
9、卸载docker(非必须)
yum remove docker-ce rm -rf /var/lib/docker
三、docker常用命令
1、查看docker版本
docker --version
2、启动docker
systemctl start docker
3、停止docker
systemctl stop docker
4、查看docker服务运行状态
systemctl status docker
5、设置开机启动
systemctl enable docker
6、运行docker的hello-world
6.1、使用docker pull获取镜像
docker pull hello-world
6.2、启动容器
docker run hello-world
7、查看镜像信息
docker images
8、查看容器信息
9、删除容器(容器ID可以简写、例如容器ID为:8591732809d0 可以写为8591写前几位即可)
docker rm 容器ID(ConTAINER ID)
10、删除镜像(镜像ID可以简写、例如镜像ID为:feb5d9fea6a5可以写为feb写前几位即可)
docker rmi 镜像ID(IMAGE ID)
四、SpringBoot项目打包成镜像运行
1、 示例工程、代码配置如图、打成jar包后打包镜像
2、编写Dockerfile文件、将jar包和Dockerfile文件上传到虚拟机中
Dockerfile文件内容
FROM:
所有Dockerfile都必须以FROM命令开始。 FROM命令会指定镜像基于哪个基础镜像创建,接下来的命令也会基于这个基础镜像。
ADD:
ADD:复制文件指令。它有两个参数
EXPOSE:
指定容器在运行时监听的端口。
VOLUME:
授权访问从容器内到主机上的目录。
RUN:
在shell或者exec的环境下执行的命令。RUN指令会在新创建的镜像上添加新的层面,接下来提交的结果用在Dockerfile的下一条指令中
ENV:
设置环境变量。它们使用键值对,增加运行程序的灵活性。
ENTRYPOINT:
配置给容器一个可执行的命令,这意味着在每次使用镜像创建容器时一个特定的应用程序可以被设置为默认程序。同时也意味着该镜像每次被调用时仅能运行指定的应用。类似于CMD,Docker只允许一个ENTRYPOINT,多个ENTRYPOINT会抵消之前所有的指令,只执行最后的ENTRYPOINT指令
FROM java:8 EXPOSE 8808 VOLUME /slm ADD hello.jar hello.jar RUN sh -c 'touch /hello.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /hello.jar" ]
3、打包成镜像(v1后面有个空格和点)
docker build -t boot-hello:v1 .
4、启动打包的镜像
-d (后台运行) -p(端口映射) 宿主机端口:容器端口 镜像名:版本号
docker run -d -p 8080:8808 boot-hello:v1
5、查看启动日志
# -f 实时滚动查看 docker logs -f b4
6、访问宿主机的IP和端口和URL查看结果
五、问题记录
问题:
Error response from daemon: conflict: unable to delete feb5d9fea6a5 (must be forced) - image is being used by stopped container 1e7575733a2d
结果分析:
这是由于要删除的目标镜像中有容器存在,故无法删除镜像。
解决办法:
先删除镜像中的容器,再删除该镜像。



