首页 > 系统相关 >CentOS Docker 安装

CentOS Docker 安装

时间:2022-08-31 11:56:21浏览次数:75  
标签:容器 compose CentOS 指定 yml 镜像 Docker 安装 docker

CentOS Docker 安装

一、docker安装

1、更新yum云仓库            updata yum

2、一键安装docker            curl -sSL https://get.daocloud.io/docker | sh

3、安装所需的软件包          

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

4、配置仓库源

yum-config-manager--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、安装docker引擎

l 最新版安装

sudo yum install docker-ce docker-ce-cli containerd.io 

l 指定版本安装

  查看可用docker版本   yum list docker-ce --showduplicates | sort -r

指定版本安装            yum install docker-ce-19.03.9

6、启动docker服务

sudo systemctl start docker 

7、验证安装

docker version

二、docker 镜像

1、查询本地主机上的镜像                docker images

2、拉取镜像

  docker pull 镜像名称:版本号(不写表示最后一个版本)

3、启动镜像

交互式启动镜像       docker run -t -i 镜像名称:版本号(不写表示最后一个版本) /bin/bash

                          docker run -itd --name centos-test centos:centos7

后台启动镜像         docker run -d  镜像名称

4、删除镜像

docker rmi 镜像名称或镜像id

5、创建镜像

  • 从已经创建的容器中更新镜像,并且提交这个镜像

docker   commit -m="描述信息" -a="作者" 容器id 目标镜像名: [TAG]

  • 使用 Dockerfile 指令来创建一个新的镜像

Dockerfile参数简介

指令 含义解释

FROM : FROM debian:stretch表示以debian:stretch作为基础镜像进行构建

 

MAINTAINER: 维护者信息

RUN : 可以看出RUN后面跟的其实就是一些shell命令,通过&&将这些脚本连接在了一行执行,这么做的原因是为了减少镜像的层数,每多一行RUN都会给镜像增加一层,所以这里选择将所有命令联结在一起执行以减少层数

ARG : 特地将这个指令放在RUN之后讲解,这个指令可以进行一些宏定义,比如我定义ENV JAVA_HOME=/opt/jdk,之后RUN后面的shell命令中的${JAVA_HOME}都会被/opt/jdk代替

ENV : 可以看出这个指令的作用是在shell中设置一些环境变量(其实就是export)

FROM…AS…: 这是Docker 17.05及以上版本新出来的指令,其实就是给这个阶段的镜像起个别名:FROM …(基础镜像) AS …(别名),在后面引用这个阶段的镜像时直接使用别名就可以了

 

COPY: 顾名思义,就是用来来回复制文件的,COPY . /root/workspace/agent表示将当前文件夹(.表示当前文件夹,即Dockerfile所在文件夹)的所以文件拷贝到容器的/root/workspace/agent文件夹中。通过–from参数也可以从前面阶段的镜像中拷贝文件过来,比 如–from=builder表示文件来源不是本地文件系统,而是之前的别名为builder的容器

 

WORKDIR: 在执行RUN后面的shell命令前会先cd进WORKDIR后面的目录

 

ENTRYPOINT: 这个参数表示镜像的“入口”,镜像打包完成之后,使用docker run命令运行这个镜像时,其实就是执行这个ENTRYPOINT后面的可执行文件(一般是一个shell脚本文件),也可以通过[“可执行文件”, “参数1”, “参数2”]这种方式来赋予可执行文件的执行参数, 这个“入口”执行的工作目录也是WORKDIR后面的那个目录。

 

制作步骤

1、创建存放Dockerfile的目录,后续操作将在这个目录下进行。

mkdir docker_demo

cd docker_demo

2、编写Dockerfile文件

l   touch mydockerfile

l   vim  mydockerfile

3、build构建镜像

docker build -t mycentos:1.0 .  (“mycentos:1.0”:新构建的镜像名称;”.”:当前目录上下文路径)

三、docker 容器

 

    

1、启动镜像生成容器                   docker run -itd --name centos-test centos:centos7      

2、查看所有容器/运行容器               docker ps -a / docker ps

3、启动一个已停止的容器                docker start 容器名称或ID

4、停止一个已启动的容器                docker stop 容器名称或ID

5、进入容器                            docker exec -it 243c32535da7 /bin/bash

6、导出容器                            docker export 1e560fca3906 > ubuntu.tar

7、导入容器

l 可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

docker export 1e560fca3906 > ubuntu.tar

l 也可以通过指定 URL 或者某个目录来导入

docker import http://example.com/exampleimage.tgz example/imagerepo

8、删除容器                                     docker rm -f 1e560fca3906

四、Docker Compose

 

1、Compose 简介

  Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

l  使用 Dockerfile 定义应用程序的环境。

 

l 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

 

l 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

2、Compose 安装

l 下载

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

l 赋权

chmod +x /usr/local/bin/docker-compose

l 创建软链

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

l 测试是否安装成功

docker-compose --version

cker-compose version 1.24.1, build 4667896b

3、创建 docker-compose.yml

version:指定版本

services:该指令下面写该yml文件中需要定义的container信息,其中services的下面第一级指令就是指定的该容器的名称

image:指定该容器使用的image,和build二选一

build:指定该容器使用的image通过哪个目录下的Dockerfile文件进行构建,. 表示当前目录的Dockerfile文件,和image二选一

ports:指定宿主机和容器的端口映射关系,可指定多个

networks:指定使用的网络信息,可指定多个

ipv4_address:和networks配合使用,指定容器在该网络中的ip信息

volumes:指定数据挂载信息,可以指定目录或文件的映射,也可以指定数据挂载记录和容器中目录的映射(这种一般指定的容器中目录是该容器Dockerfile文件中VOLUME指令指定的目录),如果指定数据挂载记录的映射需要通过volumes定义数据挂载记录,可指定多个

environment:指定容器可选参数的值信息

networks:定义网络信息,相当于docker network create 命令,其中networks的下面第一级指令就是指定网络的名称,可以配合subnet指定网段信息

volumes:定义数据挂载记录,相当于docker volume create 命令

4、使用 Compose 命令

docker-compose up 创建并启动容器

docker-compose up -d 以后台形式创建并启动容器

docker-compose -f yml文件 up 指定创建并启动容器使用的yml文件

docker-compose ps:查看通过docker-compose创建的容器,如果是docker run启动的容器不会显示,通过docker ps可以查看通过docker run和docker-compose启动的容器

docker-compose images:查看通过docker-compose得到的image,通过其他方式得到的image不会显示,通过docker images可以查看docker pull、docker run、docker-compose、docker build、docker commit得到的image

docker-compose stop/start 停止/启动docker-compose.yml文件中定义的容器。

docker-compose down 停止并删除docker-compose.yml文件中定义的容器及删除docker-compose.yml文件中定义的network,但是定义的volume不会删除。

docker-compose logs docker-compose.yml文件中定义的容器名称 查看某个容器的日志。

注意:

1、docker-compose的命令需要在有docker-compose.yml文件的目录才可以执行,否则使用docker-compose的命令会报错;并且只有该yml文件执行了up操作即创建了该docker-compose.yml定义的容器之后才可以看到对应的容器。

 

标签:容器,compose,CentOS,指定,yml,镜像,Docker,安装,docker
From: https://www.cnblogs.com/songqiang8858/p/16642560.html

相关文章

  • 使用离线安装包搭建gitlab服务器
    1下载Gitlab服务器软件包下载地址:https://packages.gitlab.com/gitlab/gitlab-ce选择自己需要的版本下载即可,我是用的是centos7,所以我下载的是gitlab-ce-15.3.2-ce.0.e......
  • mysql安装及10061错误解决
    mysql出现10061错误解决方法 1.开始菜单->运行(cmd)->寻径到MySQL文件中的bin目录下如:D:\MySQL\mysql-5.6.24-win32\bin2.输入指令:mysqld--skip-grant-tables 回车//......
  • 在docker swarm中,如何对一个service进行滚动升级?
    滚动升级,一定听过,就比如说,现在有个服务运行了多个实例,想要对这个服务进行升级(比如:更换镜像),应该怎么弄呢? 接下来的部分,咱们一起来看下。 在本文中,做滚动升级的一个场......
  • npm安装vue,在vue/dist目录下没有产生vue.js文件 npm init -y npm install vue@
    npm安装vue,在vue/dist目录下没有产生vue.js文件遇到问题:在进行npminstall时,vue/dist目录下没有生成vue.js的情况。解决办法:只在vue后面加上@2指定版本即可。npmi......
  • Volatility安装教程
    一、介绍Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。二、安装1.克隆Volatili......
  • webPack安装
    WebPack:全局安装:安装到npm默认的依赖包目录在任意目录执行:npminstall-gwebpack或cnpminstall-gwebpack本地安装:安装指定应用程序目录......
  • openEuler 20.03 LTS SP3 安装Docker
    1.添加阿里云的CentOS8源参考:https://developer.aliyun.com/mirror/centoswget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-vault-8......
  • ArcGIS Pro 安装语言包报指定路径为空
    问题描述从ArcGISPro2.8升级到3.0时,由于未卸载干净,导出安装ArcGISPro3.0中文语言包时报"指定的路径为空"。解决方案在卸载时,建议使用WindowsInstallCleanUp来卸载......
  • 你需要知道的 PyCaret 安装步骤
    你需要知道的PyCaret安装步骤Photoby博伊图梅洛·费特拉on不飞溅PyCaret是Python中的一个开源、低代码机器学习库,可自动执行机器学习工作流。由于Python......
  • Docker-Compose 安装 RabbitMQ 并安装延迟队列插件 rabbitmq-delayed-message-exchang
    1、Docker-Compose 安装RabbitMQdocker-compose.ymlversion:'3'services:rabbitmq:restart:alwaysimage:rabbitmq:3.8.5-managementcontainer_......