docker 跟maven 非常相似, 先从本地仓库找, 没有则去远程仓库下载安装, 然后虚拟容器运行。
也有私服的概念。阿里的私服。
https://docs.docker.com/ docker英文网站
http://www.docker.org.cn/page/resources.html docker中文网站
https://hub.docker.com/search?q=nginx&type=image 仓库地址, 存的镜像文件, 也称安装包
Docker是一个开源的容器引擎, 有助于更快的交付应用, 可将应用程序和基础设施层(物理机器)隔离,可更快速的打包,测试及部署应用。跟手机上的软件市场市场一样, 可以管理软件的部署安装删除。
下图为: 虚拟机与 docker的区别, 虚拟机重量级, docker轻量级。
docker 架构图,
client : 客户端 → docket_host : 主机 → registry : 仓库
核心是: 容器,镜像, 仓库,
跟maven非常相似, 客户端请求, 先去 images查找是否有该镜像文件(安装包), 没有则去registry仓库下载, 有则直接用。
images 相当与maven的 本地仓库, registry 相当与maven的远程仓库。
docker安装
查看centos内核版本, 必须在3.10及以上
uname -r
查看以前安装的docker和cotainer
# yum list installed|grep docker
# yum list installed|grep contain
删除包,例如
# yum remove containerd.io.x86_64
# yum remove docker-ce-selinux.noarch
官网安装指导:
https://docs.docker.com/install/linux/docker-ce/centos/
1:离线安装
注意: 离线安装只要下载安装包,直接安装,不需要依赖包
--nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了--nodeps你就能装上了。--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force强制安装
1: 下载安装包
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
参考博客:
https://www.cnblogs.com/yizhipanghu/p/11686362.html
https://blog.csdn.net/czr11616/article/details/89887709
2: 在线安装
安装依赖:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
配置阿里镜像
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
阿里镜像加速
阿里镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://tlxz4x4l.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload //开机启动
sudo systemctl restart docker //重启docker
安装稳定版仓库:这是国外版,不建议使用。, 建议用阿里的。上一步执行了就是阿里的镜像。 跳过此步。
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.rep
repo saved to 代表镜像设置成功。
缓存建立
sudo yum makecache fast
查看docker版本
yum list docker-ce --showduplicates | sort -r
安装指定版本:上图查询出的版本号
sudo yum install -y docker-ce-18.03.0.ce
安装最新版本 ,不指定版本则默认安装最新版本
sudo yum install -y docker-ce
出现下图 404, 删除docker相关的repo文件即可, 在 /etc/yum.repos.d/ 下删除docker的repo文件, 重新设置 阿里镜像路径就好了
安装完成, docker -v 查看安装版本
docker -v
设为开机启动:
sudo systemctl enable docker
sudo systemctl start docker
镜像相关命令:
步骤:
1:先docker ps -a 查看容器
2:docker stop 容器id
3: docker rm 容器ID //删除容器 , 删除多个容器 ID 用空格隔开
4: 删除镜像 docker rmi 镜像ID //删除镜像, 删除多个容器 ID 用空格隔开
卸载:
1:删除容器
docker ps 查看运行的容器
docker ps -a 查看所有的容器
docker rm 容器ID //删除容器 , 删除多个容器 ID 用空格隔开
2: 删除镜像
docker ps 查看运行的容器
docker ps -a 查看所有的容器
docker rmi 镜像ID //删除镜像, 删除多个容器 ID 用空格隔开
删除安装包
yum -y remove docker.x86_64 docker-client.x86_64 docker-common.x86_64
移除docker
sudo yum remove docker-ce
移除镜像,容器,卷,网络,自定义文件等
sudo rm -rf /var/lib/docker
# 移除掉旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# 删除所有旧的数据
sudo rm -rf /var/lib/docker
-d 表示为后台启动。 nginx: 版本号, 在应用名称后加冒号, 后面可以加版本号
docker 部署 spring boot 运行;
1: liunx 新建目录
mkdir jar
2:上传jar包至liunx 新建的目录,创建脚本
将打包的程序jar包上传至 jar文件夹
在同目录创建如下文件:
#指定环境
FROM java:8
#复制文件到docker容器
ADD jar包名称 /运行的容器名称
#声明启动端口号
EXPOSE 8088
#配置容器启动后执行的命令
ENTRYPOINT ["java", "-jar", "/运行的容器名称"]
3: 将jar包打包为镜像
docker build -t 镜像名称 Dockerfile文件路径( Dockerfile文件路径可以用 . 来表示,代表当前路径)
docker build -t service-control .
java:8 如果在镜像仓库没有的话就会去远程仓库下载过来。
也就是
Step 1/4 : FROM java:8
8: Pulling from library/java
4: docker 运行打包的镜像
查看打包的镜像, 能查看到打包的镜像就代表打包成功了。
docker images
启动镜像文件
#-d 代表后台运行, 端口号可以相同,最好相同
docker run -d -p 8088:8088 service-control
如下就是前端成功启动了。注意防火墙配置端口通过, 不要关闭防火墙。 切记切记。
加上 -d 代表后台运行。