Docker基础

一、Docker基本概念

1、简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

2、作用及解决的问题

1、统一标准(容器化)
  • 应用构建

    • Java、C++、JavaScript
    • 打成软件包
    • .exe
    • docker build … 镜像
  • 应用分享

    • 所有软件的镜像放到一个指定地方 docker hub
    • 安卓,应用市场
  • 应用运行

    • 统一标准的 镜像
    • docker run
2、资源隔离
  • cpu、memory资源隔离与限制

  • 访问设备隔离与限制

  • 网络隔离与限制

  • 用户、用户组隔离限制

3、架构

在这里插入图片描述

  • Docker_Host:

    • 安装Docker的主机
  • Docker Daemon:

    • 运行在Docker主机上的Docker后台进程
  • Client:

    • 操作Docker主机的客户端(命令行、UI等)
  • Registry:

    • 镜像仓库
    • Docker Hub
  • Images:

    • 镜像,带环境打包好的程序,可以直接启动运行
  • Containers:

    • 容器,由镜像启动起来正在运行中的程序

4、安装(Linux版)

1、移除以前docker相关包
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
2、配置阿里yum源
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装docker
sudo yum install -y docker-ce-20.10.9 docker-ce-cli-20.10.9 containerd.io-1.4.9
4、启动并设置开机自启
systemctl enable docker --now
5、配置加速源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://dmv9ukpn.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

二、Docker基础命令

1、登录和注销

docker login #登录 提示Login Succeeded表示登录成功
docker logout #注销

2、镜像管理

1、docker images 查看docker镜像列表
docker images
docker image ls
2、docker search 搜索镜像(docker hub
docker search 镜像名[:TAG|@DIGEST]
docker search nginx
3、docker pull 拉取镜像
docker pull [设置项] 镜像名[:TAG] 
docker pull nginx  # 默认拉取nginx最新镜像
docker pull nginx:1.20.1 # 拉取指定版本
4、docker save 将镜像保存为文件(实现迁移镜像)
docker save -o 文件名 镜像名[:TAG]
docker save -o nginx.tar nginx:latest 
5、docker load 导入保存的镜像文件(还原迁移镜像)
docker load -i 文件名
docker load -i nginx.tar
6、docker rmi 删除镜像
docker rmi [设置项] 镜像名[:TAG]
docker rmi nginx:latest
7、docker tag 标记镜像
docker tag 原镜像名[:TAG] 目录镜像名[:TAG]
docker tag nginx:latest  meanvalue/nginx:1.0
8、docker push 将标记镜像推送到镜像仓库(需先登录)
docker push [设置项] 镜像名[:TAG]
docker push meanvalue/nginx:1.0
9、docker build 使用 Dockerfile 创建镜像
docker build [设置项] PATH | URL | - #可以通过 docker build --help 查看
docker build -t meanvalue/nginx:1.0 . #使用当前目录的 Dockerfile 创建镜像

3、容器管理

1、docker ps 查看容器
docker ps [OPTIONS]
docker ps #查看运行中的容器
docker ps -a #查看所有容器列表
2、docker create 创建一个容器但不启动它
docker create [设置项] 镜像名 [COMMAND] [ARG...]
docker create --name test meanvalue/nginx:1.0
3、docker run 创建并运行一个新的容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run --name test2 meanvalue/nginx:1.0
4、docker start 启动一个或多个已经停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker start test #启动容器名为test的容器
docker start 90b406842089 #启动容器id为90b406842089的容器
5、docker stop 停止正在运行中的容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker stop test #停止容器名为test的容器
docker stop 90b406842089 #停止容器id为90b406842089的容器
6、docker restart 重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
docker restart test #重启容器名为test的容器
docker restart 90b406842089 #重启容器id为90b406842089的容器
7、docker kill 杀死正在运行中的容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
docker kill test #杀死容器名为test的容器
docker kill 90b406842089 #杀死容器id为90b406842089的容器
8、docker rm 删除一个或多个容器,多个容器之间用空格隔开
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm test #删除容器名为test的容器
docker rm 90b406842089 #删除容器id为90b406842089的容器
9、docker pause/unpause 暂停/恢复容器中所有进程
docker pause CONTAINER [CONTAINER...]
docker pause test #暂停容器名为test的容器
docker unpause test #恢复容器名为test的容器
10、docker exec 在容器中执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker  exec -it test /bin/bash #进入容器名为test的容器
docker  exec -it 90b406842089 /bin/bash #进入容器id为90b406842089的容器
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mean-Value

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

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

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

打赏作者

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

抵扣说明:

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

余额充值