【云原生 一】Docker 安裝部署
【云原生 六】K8S 集群下 kubesphere 云平台部署安装
一、准备工作
卸载旧版本遗留
sudo apt remove --purge docker docker-engine docker.io containerd runc
更新软件库
sudo apt update
sudo apt upgrade
安装docker依赖的软件
sudo apt install ca-certificates curl gnupg lsb-release apt-transport-https software-properties-common
添加Docker阿里GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加docker的阿里软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
二、安装
安装docker
sudo apt install docker-ce docker-ce-cli containerd.io
安装指定版本:
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
sudo apt install install docker-ce-20.10.18 docker-ce-cli-20.10.18 containerd.io
启动docker
systemctl start docker 或者 service docker restart
#开机启动
systemctl enable docker.service
验证服务
systemctl status docker
配置加速镜像
修改 daemon.json 文件,添加镜像路径。可以登录自己的阿里云平台生成自己的镜像地址。
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xx.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
更加完整的配置文件如下(报错可以替换上面daemon.json):
{
"exec-opts": [
"native.cgroupdriver=systemd"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"registry-mirrors" : [
"https://xx.mirror.aliyuncs.com"
],
"graph": "/data/docker"
}
相关路径
-
docker服务文件路径:/usr/lib/systemd/system/docker.service
-
docker配置文件:/etc/docker/daemon.json
-
docker数据路径:/var/lib/docker/
-
docker日志路径:/var/lib/docker/containers/{containerId}/{containerId}-json.log
三、Docker开启远程连接和Idea支持
开启支持远程连接:
编辑服务文件
vim /usr/lib/systemd/system/docker.service
在启动参数 ExecStart
值尾部增加“-H tcp://0.0.0.0:2375”,表示允许远程任何主机通过2375端口连接docker,端口可以自定义。如图
然后重启docker 服务
systemctl daemon-reload
systemctl restart docker
访问地址检查是否开放成功 http://{ip}:2375/version
在idea中配置docker:
在idea的配置菜单中配置,File -> Settings -> Build, Execution, Deployment -> Docker 设置docker服务地址后保存
在idea工具栏中的service中就可以找到docker服务,点击连接即可。
四、Dockerfile 文件
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile 的指令每执行一次都会新建一层。所以过多无意义的层,会造成镜像膨胀过大。
Dockerfile 文件示例:
FROM openjdk:8
MAINTAINER hewei<111@qq.com>
LABEL version="1.0" description="docker 镜像测试程序"
ENV TZ=Asia/Shanghai MYPATH=/bootAdmin
WORKDIR $MYPATH
RUN apt -y install vim tail
VOLUME /bootAdmin /bootAdmin
COPY ./target/boot-static-admin-0.0.1-SNAPSHOT.jar /boot-static-admin.jar
EXPOSE 8091
CMD java -jar boot-static-admin.jar
构建镜像命令:
docker build -f dockerfile名称 -t 新建的镜像名:TAG .
docker build -f Dockerfile -t app:v1 .
在idea中可以直接运行Dockerfile在远程docker服务上创建镜像和容器并启动
原创文章,转载或引用注明出处:https://www.cnblogs.com/hewei-blogs/articles/17733074.html
附录:Dockerfile 指令 说明
FROM 指定基础镜像,用于后续的指令构建。
MAINTAINER 指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令)
LABEL 添加镜像的元数据,使用键值对的形式。
RUN 在构建过程中在镜像中执行命令。
CMD 指定容器创建时的默认命令。(可以被覆盖)
ENTRYPOINT 设置容器创建时的主要命令。(不可被覆盖)
EXPOSE 声明容器运行时监听的特定网络端口。
ENV 在容器内部设置环境变量。
ADD 将文件、目录或远程URL复制到镜像中。
COPY 将文件或目录复制到镜像中。
VOLUME 为容器创建挂载点或声明卷。
WORKDIR 设置后续指令的工作目录。
USER 指定后续指令的用户上下文。
ARG 定义在构建过程中传递给构建器的变量,可使用 "docker build" 命令设置。
ONBUILD 当该镜像被用作另一个构建过程的基础时,添加触发器。
STOPSIGNAL 设置发送给容器以退出的系统调用信号。
HEALTHCHECK 定义周期性检查容器健康状态的命令。
SHELL 覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。
本文来自博客园,作者:蓝迷梦,转载请注明原文链接:https://www.cnblogs.com/hewei-blogs/articles/17733074.html