使用Docker
2021-05-17 本文已影响0人
奋斗_登
Docker是一个开源的软件部署解决方案和轻量级的应用容器框架,它可以打包、发布、运行任何的应用。即Docker是一个管理容器的构建、传输和部署的工具。
Docker主要有镜像、容器、仓库几个概念。
- 镜像
在设计Docker时,利用Union FS的技术将其设计未分层存储架构。镜像实际是由多层文件系统联合组成的。在构建镜像时,会一层层的构建,前一层是后一层的基础。每一层构建在完成后不会再发生改变,后一层中的任何改变只发生再其自身一层。这种分层存储方式使得Docker镜像易于复用和定制。 - 容器
容器也采用分层存储,它本质是系统的进程都运行在自己独立的命名空间中。和镜像的区别在于在于容器的最上面那一层是可读可写的。容器 = 镜像 + 读写层。并且容器的定义并没有提及是否要运行容器。 - 仓库
仓库就是存储镜像文件的服务器,是方便再其它服务器上使用镜像。
Centos下安装docker
安装yum-util,是为了使用yum-config-manager工具设置安装源。
yum install -y yum-utils
添加软件
#添加docker的安装源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装启动
#先更新YUM包索引
yum makecache fast
#安装docker,社区版
yum -y install docker-ce
配置国内镜像加速器
在阿里云镜像控制台->镜像工具->镜像加速器查看加速器地址。
在/etc/docker/目录下创建daemon.json添加如下内容:
{
"registry-mirrors": ["https://fon46f0i.mirror.aliyuncs.com"]
}
载入配置并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
#可测试运行hello world
docker run hello-world
镜像的基本操作
#查看所有已下载的镜像
docker images
#搜索镜像
docker search ngixn
#下载镜像可指定版本eg: docker pull nginx:1.17.8
docker pull nginx
#删除镜像 f989k3kdss为docker images命令查询到的IMAGE ID
docker rmi f989k3kdss
容器操作
# 查看正在运行的容器
docker ps
# 查看所有的容器
docker ps -a
# 启动容器
#. -d 在后台运行
#. --name 自定义容器名,-p 用于指定服务器与Docker容器进行端口映射的端口
docker run -d -p 80:80 nginx
#-v 使用数据卷,即当容器删除时,数据还依然保存
docker run --name mysql -v /home/data/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12536 -d mysql:5.7.34
#停止容器
docker stop 容器id
#重启容器
docker start 容器id
# 查看mysql容器的Ip等信息
docker inspect mysql
# 删除容器 d95d82a7cf72为 CONTAINER ID
docker rm d95d82a7cf72
# 删除镜像
docker rmi 94fae7da05d6
# 清理未使用的镜像[1.已停止的容器 container 2.未被任何容器所使用的卷 volume 3.未被任何网络所关联的网络network 4.所有悬空的镜像 image]
docker system prune
docker在服务器启动时自动启动
systemctl enable docker.service
docker部署springboot
- 将springboot项目打包jar
- 编辑dockerfile文件
FROM openjdk:11.0.11
VOLUME /tmp
#作者签名
MAINTAINER lipandeng
#简化jar名字路径
COPY jar/demo-0.0.1-SNAPSHOT.jar /app.jar
# --spring.profiles.active参数,如无可不填写
# CMD:在启动容器时才执行,RUN:在构建镜像时执行此行
CMD java -jar /app.jar --spring.profiles.active=node4
#设置对外端口8088
EXPOSE 8088
- 生成Docker镜像
#注意.不能丢
docker build -t eurekaserverdemo .
- 运行
#-d 后台运行
docker run -d -p 8088:8088 eurekaserverdemo