docker进阶-使用详解

什么是docker:

  • Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

docker 安装:

  • 卸载旧版本:
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
  • 安装新版本:
 #执行以下命令安装依赖包
 $ sudo yum install -y yum-utils
# 执行下面的命令添加 yum 软件源:
 $ sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

# 官方源
# $ sudo yum-config-manager \
#     --add-repo \
#     https://download.docker.com/linux/centos/docker-ce.repo
 #更新 yum 软件源缓存,并安装 docker-ce
 $ sudo yum install docker-ce docker-ce-cli containerd.io

docker镜像操作

  • 启动docker:sudo systemctl start docker

  • 获取镜像:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
    例子:docker pusll centos:8

  • 运行镜像:docker run {容器id或容器名称}
    启动容器命令参数:

    • 定义容器名称--name 可定义容器的名称,比如docker run -d -i -t --name my_python python,启动容器并命名为my_python
    • 守护模式启动-d 参数内增加-d则是以守护模式启动,比如docker run -d mysql,以守护模式启动mysql
    • 交互模式启动容器-i -t 以交互模式启动容器,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开,比如docker run -i -t -d python bash 以交互模式启动python
    • 映射容器端口-p 使用-p参数可将容器内的端口映射到主机的端口,这样我们通过映射到主机的端口就可以访问到容器内的端口,比如docker run -d -p 127.0.0.1:81:80 nginx:alpine,这样我们就可以通过127.0.0.1:81访问到容器内的80端口了,且可使用多个-p来映射多个端口,比如docker run -d -p 81:80 -p 433:433 nginx:alpine;注意假如要绑定 UDP 端口需要在端口号后面加 /udp,比如docker run -d -p 127.0.0.1:81:80/udp nginx:alpine
    • 挂载主机目录-v 使用-v参数可以将主机任意目录挂载到docker容器中,即使删除容器,数据也会保存在主机,格式-v 主机目录:docker内要挂载主机的目录,比如docker run -i -t -d -v /src/webapp:/usr/share/nginx/html nginx:alpine,该命令加载主机的 /src/webapp 目录到容器的 /usr/share/nginx/html目录
  • 获取当前已下载的镜像:docker image ls

  • 删除本地镜像:docker image rm [选项] <镜像1> [<镜像2> ...]
    例子:docker image rm python
    解释:删除python镜像

docker容器操作

  • 获取所有容器运行状态:docker ps -a
    运行状态详解如下图:
    在这里插入图片描述
  • 停止容器运行:docker stop {容器id或容器名称}
    例子:docker stop python
    解释:停止python容器
  • 启动容器:docker start {容器id或容器名称}
    例子:docker start python
    解释:启动python容器
  • 删除容器:docker rm {容器id或容器名称}
    例子:docker rm python
    解释:删除python容器
  • 进入容器:docker exec -it {容器id或容器名称} bash
    例子:docker exec -it python
    解释:进入python容器
  • 导出容器:docker export {容器id或容器名称} >{导出的文件名}
    例子:docker exprot python >python310.tar
    解释:将python容器导出为python310.tar
  • 导入容器:cat {要导入的文件} | docker import - {镜像名称}
    例子:cat python310.tar | docker import - python3
    解释:将 python310.tar导入为python3镜像,此时使用docker image ls 会发现出现python3名称的镜像
  • 查看容器内进程信息:docker top {容器id或容器名称}
    例子:docker top python
    解释:查看python容器下的进程信息
  • 查看容器内的日志:docker logs -f {容器id或容器名称}
    例子:docker logs -f python
    解释:查看python容器内的日志信息
  • 复制容器内的文件到主机:docker cp {容器id}:{容器文件地址} {要复制文件到主机的位置}
    例子:docker cp f13:/root/test.txt /home
    解释:将容器id-f13内root目录下的test.txt 文件拷贝到主机的home目录下
  • 复制主机的文件到容器内:docker cp {要复制文件到主机的位置} {容器id}:{容器文件地址}
    例子:docker cp /home/test.txt f13:/root
    解释:将主机的home目录下的test.txt文件拷贝到容器id为f13的root目录下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值