Docker安装和使用

Sabthever

一. docker安装

主要参考文章Docker、Docker-compose 入门教程

  • 上阿里云自己登录注册账户

  • 控制台-左上角-容器镜像服务ACR-镜像工具-镜像加速器-用地址来替代入门教程第二步中registry-mirrors的代码

  • 如果没变就是这样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    yum install -y yum-utils device-mapper-persistent-data lvm2 && \
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum makecache fast && \
    yum -y install docker-ce && \
    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
    }
    EOF
    systemctl daemon-reload
    systemctl enable docker
    systemctl restart docker
  • 只要完成到第二步就好了

二. docker换源

或者多加一些源

  1. 进入/创建配置目录

    1
    2
    3
    4
    # 创建(有就不用了)
    sudo mkdir -p /etc/docker
    # 进入
    cd /etc/docker
  2. 配置镜像源

    创建或修改 /etc/docker/daemon.json 文件,添加国内可用的镜像源地址:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://registry.cn-hangzhou.aliyuncs.com" // 阿里云镜像(需替换为你的专属加速地址)
    ]
    }
    EOF

注意:建议保留 2-3 个稳定的镜像源,过多可能影响速度。

  1. 重启Docker服务

    1
    2
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  2. 测试拉取镜像

    尝试拉取测试镜像以验证速度:

    1
    sudo docker pull hello-world

三. docker使用

菜鸟教程

  1. 下载镜像

    docker pull

    • 比如使用docker pull mysql:8这个8是版本
  2. 搜索镜像

    docker search

    • 第一条往往都是官方的
    • 比如使用docker search mysql
  3. 查看镜像

    docker images

    本地下载了哪些镜像

  4. 删除镜像

    docker rmi 镜像id

    id是images中查出来的

  5. 使用镜像创建容器

    • docker run -itd --name mysql01 -p 13306:3306 -e MYSQL_ROOT_PASSWORD=ok 3218b38490ce -e后面是设置的数据库密码,主机13306端口与容器3306端口映射,最后那个是镜像id。
  6. 重启容器

    docker start 容器id

  7. 停止容器

    docker stop 容器id

  8. 进入容器

    docker exec -it 容器id /bin/bash

  9. 退出容器

    exit

  10. 查看容器

    • docker ps -a看所有

    • docker ps看就是正在运行的

  11. 删除容器

    docker rm 容器id

四. 自定义镜像

1. 自定义自己的java容器镜像

  • Dockerfile文件保存为Dockerfile要为Unix格式的
1
2
3
4
5
FROM openjdk:8
MAINTAINER cm
EXPOSE 9090
ADD express-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
  • 这个.jar文件是自己的项目 后面的.jar是别名

  • 9090是jar包的运行端口,上面那个是jdk版本

  • 把这个image先拉下来

    1
    docker pull openjdk:8
  • 把jar文件和Dockerfile都保存到一个文件下,进入该目录执行:

    docker build -t express:1 .1是版本号,.是当前目录下

  • 自己的镜像好了就可以用

    docker run -itd --name expressafter -p 9090:9090 2ad1bee10115

2. DockerFile指令

  • 每个指令都会创建提交一个新的镜像层,并提交

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FROM               #基础镜像,从基础镜像开始构建
    MAINTAINER #该dockerfile作者,姓名+邮箱
    RUN #镜像构建的时候需要运行的命令
    ADD #添加内容,添加压缩包 如tomcat镜像
    WORKDIR #镜像的工作目录
    VOLUME #挂载目录
    EXPOSE #暴露端口配置
    CMD #指定该容器启动的时候要运行的命令,只有最后一个会生效,可被替代
    ENTRYPOINT #指定该容器启动的时候要运行的命令,可以追加
    ONBUILD #当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令,触发指令。
    COPY #将文件拷贝到镜像种,类似ADD
    ENV #构建的时候设置环境变量
  • 标题: Docker安装和使用
  • 作者: Sabthever
  • 创建于 : 2025-08-01 09:37:02
  • 更新于 : 2025-08-01 17:09:22
  • 链接: https://sabthever.cn/2025/08/01/technology/operation/Docker/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。