当前位置:   article > 正文

docker进阶-使用详解_docker进阶使用

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 安装新版本:
 #执行以下命令安装依赖包
 $ 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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目录下
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/73482
推荐阅读
相关标签
  

闽ICP备14008679号