Docker 基础命令入门

在线安装yum安装工具

Docker原理图

在这里插入图片描述

1.安装yum工具

sudo yum install -y yum-utils 

2.设置yum仓库地址(这里设置两个备用)

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

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

3.更新yum缓存(#yum 是包管理器)

sudo yum makecache fast

4.安装新版docker

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

Docker 入门命令实践

docker基本配置

1.启动docker

sudo systemctl start docker

2.设置docker开机自启动

sudo systemctl enable docker

3.镜像加速
由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
下面命令直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

说明:在执行上述命令时,保证你的登录用户是root管理员用户

docker启动服务

1.重写加载docker配置在这里插入代码片

sudo systemctl daemon-reload

2.重启docker服务

sudo systemctl restart docker

3.查看docker镜像配置

docker info

4.下载hello-world镜像

sudo docker pull hello-world

5.检查docker镜像

Docker images

6.运行docker镜像

docker run hello-world

7.检查已经启动的docker服务

Docker ps

假如想查看所有镜像,包含没有运行的镜像容器

Docker ps –all   #可以用 docker ps -a 缩写形式

8.停止docker容器服务

docker stop 服务id

9.删除docker容器

docker container rm 容器名或容器id

删除所有终止状态容器

docker container prune

10.删除docker镜像

docker image rm hello-world

11.进入已经启动的容器服务

docker exec -it  "name" bash

Docker镜像操作实践

第一步:下载 CentOS 镜像 (说明,假如是自己制作镜像,都会先下载一个空的centos镜像,官方镜像仓库地址为https://hub.docker.com/),假如后面我们要自己做镜像,都需要这样的一个空的系统镜像文件。

docker pull centos:7

在这里插入图片描述
第二步:查看centos7镜像文件

docker images

运行镜像

通过docker启动运行 centos7镜像

docker run -it centos:7 bash

删除镜像文件

id,name都可作为标志位

docker image rm centos

Docker 数据管理实践

在容器中管理数据主要有两种方式:

1.挂载主机目录 (Bind mounts)-最常用 (docker run –v 宿主机目录:容器目录)
2.数据卷(Volumes

数据卷

1.创建数据卷

docker volume create container-vol

2.查看所有数据卷

docker volume ls

3.查看指定数据卷的信息

docker volume inspect container-vol

显示结果

[
    {
        "CreatedAt": "2021-09-10T10:42:24+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/container-vol/_data",
        "Name": "container-vol",
        "Options": {},
        "Scope": "local"
    }
]

4.启动挂载数据卷的容器

docker run -it -v container-vol:/root centos:7 bash

5.删除数据卷(如果数据卷被容器使用则无法删除)

docker volume rm container-vol

6.清理无主数据卷

docker volume prune

挂载主机目录(常用)

1.docker run -it -v /usr/app:/opt/app centos:7 bash
其中:
1)/usr/app:为宿主机目录
2)/opt/app: 为启动容器的一个目录
3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。
在这里插入图片描述
查看挂载目录信息

docker inspect 91a #91a 为容器id

显示结果

...
 "Mounts": [
            {
                "Type": "bind",
                "Source": "/root/container",
                "Destination": "/cgb",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ]
...

Dockerfile 文件应用实践

概述

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。我们通常会基于此文件创建docker镜像。

准备工作

1.centos:7镜像 (所有的镜像文件创建时都需要有一个空的centos镜像,就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的)
2.jdk压缩包 jdk-8u51-linux-x64.tar.gz(可以从官网去下载:oracle.org),基于此压缩包,制作jdk镜像。

Dockerfile 文件

在创建新的镜像时都需要有一个Dockerfile文件(文件名一定要注意大小写),这个文件要与你的资源放在一起(例如你下载的jdk),我们可以通过linux系统中的touch指令创建此文件(touch Dockerfile)

现在,以centos7为基础,构建oracle jdk8的镜像,首先通过vim打开Dockerfile,这个文件不存在会自动创建。然后进入编辑模式(按i字母),在编辑模式下可以拷贝如下语句(自己手动写也可以,但确保写的单词正确,大小写,空格)。
第一步:编写FROM语句(关键字一定要大写,例如FROM不能写小写)

FROM centos:7

第二步:通过ADD命令将宿主机中的压缩包传入镜像容器中的指定目录,并同时解压缩

ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker

第三步:设置环境变量(通过ENV关键字实现,目录启动容器中的目录)

ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH

第四步:指定命令行操作(所有指令与后面内容要有空格)

CMD [‘bash’]

完整示例如下:(注意关键字与后面内容之间的空格,可以将如下完成示例拷贝Dockerfile文件,但是一定要注意你的jdk名字是什么)

FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD ['bash']

使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)

docker build -t jdk:8 .  #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.

运行镜像文件

docker run -it jdk:8 bash

进入容器以后,可以通过echo $PATH查看环境变量,并可以通过java –version查看JDK版本信息。

FAQ:如何通过此镜像运行一个web服务,例如sentinel等。

第一步:将sentinel拷贝宿主机指定目录,例如/root/servers目录(servers目录不存在可以自己创建)。

第二步:启动镜像容器,通过java执行运行web服务

基于jdk:8镜像启动运行sentinel服务(服务启动后可在宿主机通过localhost:8180进行访问)
(/servers 此处/相当于根目录root 无法写成/root/servers)

docker run -d  -p 8180:8080 --name sentinel -v /servers:/usr/sca jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.0.jar

端口映射,可参考下面的图,例如在这里插入图片描述
打开浏览器访问地址,IP地址加端口8180,如图即可访问成功
在这里插入图片描述

制作Sentinel镜像整个过程

第一步:定义Dockerfile文件,同时将jdk,sentinel也要和这个文件放在同一个目录

FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz  /usr/local/
ADD sentinel-dashboard-1.8.0.jar  /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
    PATH=/usr/local/jdk1.8.0_51/bin:$PATH
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]

第二步:使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)

docker build -t  sentinel:8 .  #不要丢掉这里的点

第三步:运行sentinel容器

docker run -d -p 8180:8080 sentinel:8

假如我们要做目录的挂载,保存容器中日志,可参考如下方式:

docker run -d -p 8180:8080 --name sentinel  \
-v /usr/local/docker/sentinel/logs:/root/logs/csp sentinel:8

第四步:查看sentinel容器

docker ps

第五步:访问sentinel服务
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪耀太阳a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值