环境:centOS8
一、docker的安装
1.安装必要的组件
yum install -y yum-utils device-mapper-persistent-data lvm2
-y 自动确认安装
yum-utils yum工具集组件
device-mapper-persistent-data,lvm2 数据存储的驱动包
2.设置新的安装源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 阿里云镜像安装源
add-repo 设置新的安装源
3.优先使用安装最快的安装源
yum makecache 是 将服务bai器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度
yum makecache fast
如果报错去掉fast,在centos8中没有fast
4.安装docker
查看版本
yum list docker-ce --showduplicates | sort –r
安装命令:
yum –y install docker-ce
指定版本安装命令:
yum install docker-ce-3:19.03.9-3.el7.x86_64
出现的问题:
centos8默认使用podman代替docker,所以需要containerd.io,那我们就安装一下就好了
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
继续安装:
5.启动docker
service docker start
6.查看docker版本
docker version
7.检查docker是否能够运行
docker pull hello-world
从国外的远程中央仓库中名为hello-world的镜像抽取下载到本地。
8.测试
docker run hello-world
附:
Linux升级命令有两个分别是yum upgrade和yum update, 这个两个命令是有区别的:
yum -y update
升级所有包同时也升级软件和系统内核
yum -y upgrade
只升级所有包,不升级软件和系统内核
二、配置阿里云docker镜像加速
1.登录阿里云
2.搜索‘容器镜像服务’
3.点立即开通
4.找到镜像加速菜单
5.将加速代码粘贴到服务器执行
三docker 概念介绍
docker 服务器 docker deamon 守护进程
docker 基于rest API 通信层
docker 客户端
四、docker常用命令详解
1.docker pull 镜像名<:tags> --从远程仓库抽取镜像
2.docker images –查看本地镜像
3.docker run 镜像名<:tags> --创建容器,启动应用
此时发现浏览器无法访问,是因为容器与主机之间没有映射
docker宿主机与容器之间的通信 ---- 端口映射
docker run -p 8000:8080 tomcat
查看监听 :
netstat -tulpn
后台运行:
docker run -p 8000:8080 -d tomcat
4.docker ps –查看正在运行中的镜像
5.docker rm <-f> 容器id –删除容器
移除:
docker rm 68d4d6c6e803
发现报错了,原因是不能直接rm,需要先stop 再 rm,如下:
docker stop 68d4d6c6e803
docker rm 68d4d6c6e803
也可以使用强制移除命令,就不用先停止了
docker rm -f 68d4d6c6e803
6.删除镜像
docker rmi <-f> 镜像名:<tags>
docker rmi tomcat:8.5.61-jdk8-openjdk
如果容器已启动,无法移除:
可以强制移除:
docker rmi -f tomcat
五、tomcat容器内部结构
容器:轻量级虚拟化技术
中央仓库地址: hub.docker.com
linux(Red Hat 4.8.5-28)
jdk(1.8.0_222)
Apache Tomcat/8.5.46
当我们在执行命令;docker run tomcat 后容器中就自动包含以上组件。
我们也可以在容器中执行linux命令,因为容器本身就是一个迷你版的linux操作系统
具体如下:
在容器中执行命令:
格式: docer exec [-it] 容器id 命令
exec在对应容器中执行命令
-it 采用交互方式执行命令
实例:docer exec –it *********** /bin/bash
以下以tomcat容器为例:
创建一个tomcat容器:
docker run -d -p 8000:8080 tomcat
进入容器内部:
docker exec -it fc035285d037 /bin/bash
查看linux内核版本:
cat /proc/version
查看jdk版本:
java -version
退出容器内部:
exit
docker 默认存放路径:
/var/lib/docker
镜像存放在image目录下
容器存放在containers目录下
六、容器生命周期
状态:stoped、runing、paused、deleted
待续。。。
七、dockerfile构建镜像
dockerfile镜像描述文件,是一个包含用于组合镜像的命令的文本文档
作用:docker通过读取dockerfile中的指令按步自动生成镜像
指令:docker build –t 机构/镜像名<:tags> dockerfile目录
以下我们构建一个自定义的tomcat镜像并启动该容器
实例dockerfile自动部署tomcat应用:
dockerfile文件内指令:
FROM tomcat:latest
MAINTAINER mashibing.com
WORKDIR /usr/local/tomcat/webapps
ADD docker-web ./docker-web
步骤:
1.先在本地创建一个docker-web的文件夹
2. docker-web文件夹内创建一个html文件
3.在docker-web文件夹同级目录下创建Dockerfile文件,注意:该文件不加任何后缀
4.将docker-web,Dockerfile传至linux服务器,注意:不是容器内部
5.使用build命令构建自定义镜像
docker build -t mytest/mywebapp:1.0 /usr/image/
6.启动容器
docker run -d -p 8001:8080 mytest/mywebapp:1.0
7.测试
八、dockerfile 基础命令
FROM – 基于基准镜像
LABEL& MAINTAINER –说明信息
MAINTAINER cn.test.com
由个人或机构维护
LABEL version = “1.0”
关键信息描述
LABEL description = “呵护”
WORKDIR - 设置工作目录
WORKDIR /usr/local
WORKDIR /usr/local/newdir #可自动创建目录
尽量使用绝对路径
ADD© -- 复制文件
ADD hello / # 复制文件到根路径
ADD test.tar.gz / #添加根目录并解压
ADD 除了复制,还具备添加远程文件功能
ENV –设置环境常量
ENV JAVA_HOME /usr/local/openjdk8
run ${JAVA_HOME }/binjava –jar test.jar
尽量使用环境常量,可提高程序维护性
九、