随笔 - 14  文章 - 0  评论 - 0  阅读 - 5574

CentOS 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

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

 

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

 

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

 

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

 

制作步骤

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

mkdir docker_demo

cd docker_demo

2、编写Dockerfile文件

l   touch mydockerfile

l   vim  mydockerfile

3build构建镜像

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、导入容器

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

docker export 1e560fca3906 > ubuntu.tar

也可以通过指定 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 定义应用程序的环境。

 

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

 

最后,执行 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定义的容器之后才可以看到对应的容器。

 

posted on   IT小强8858  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示