docker 常见操作(上)

2020-05-04  本文已影响0人  djz0306

太久没有更新文章了,学习或者整理了东西以后一直都存在本地,今天抽时间写了一点,常见操作的下半部分,改天上传

引子

为什么会有 docker

当前痛点

产品从开发到上线过程中需要经历多次部署,环境配置。尤其是每次不同版本之间的环境兼容性对团队来说都需要付出一定的时间经历解决,很容易出现在这台机器上能正常运行,但是部署上线以后运行出问题的情况。例如依赖没有解决,例如环境配置遗漏等。

docker 理念

"Build,Ship and Run Any App, Anywhere",可以理解为“一次封装,到处运行”

docker 与 虚拟机的区别

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。

docker 资料

docker官网

docker hub

docker 安装

要求

目前,CentOS 仅发行版本中的内核支持 Docker。

安装步骤

安装可以参考官网链接:官网 docker 安装教程

  1. 官网没有指明需要需要 gcc,但是建议事先安装 gcc,命令如下:

    yum -y install gcc
    yum -y install gcc-c++
    
  2. 安装依赖的包,命令如下:

    sudo yum install -y yum-utils \
      device-mapper-persistent-data \
      lvm2
    
  3. 设置仓库,其中官网的命令为:

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

    但是由于镜像服务器的原因,可以直接改为国内阿里云镜像:

    sudo yum-config-manager \
        --add-repo \
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  4. 安装 yum 软件包索引(官网不包括这步)

    yum makecache fast
    
  5. 安装 docker-ce

    yum -y install docker-ce
    
  6. 启动 docker

    systemctl start docker
    
  7. 验证安装:

    sudo docker run hello-world
    
  8. 配置镜像加速:

    mkdir -p /etc/docker
    vim /etc/docker/daemon.json
    

    增加国内加速镜像,例如网易云{"registry-mirrors": ["http://hub-mirror.c.163.com"] } 或者阿里云

    重载重启:

    systemctl daemon-reload
    systemctl restart docker
    

docker 常用命令

基础命令

docker version
docker info
docker --help

镜像命令

查看

docker images
image-20200303154644888.png

其中:

命令的选项有:

其中最常用的为 docker images -qa

搜索

docker search [镜像名]
image-20200303155332052.png

常见的命令选项有:

下载镜像

docker pull [镜像名]

pull 命令类似 git 拉取代码,用于下载镜像,镜像名后可以跟 TAG 用于指定版本 docker pull 镜像名:TAG,在 docker 中不加 TAG 默认为 latest

删除镜像文件

docker rmi 镜像名ID

可以跟镜像 ID 也可以跟镜像名。可以使用 -f 强制删除,如果需要删除所有镜像可以使用 docker rmi -f $(docker images -qa)

如果删除时提示冲突,可以先删掉记录docker ps -a -q | xargs docker rm 或者 docker rm -f $(docker ps -a -q)然后再删除即可

容器命令

下载镜像

docker pull centos

新建并运行容器

docker run [OPTIONS] image [COMMAND] [ARG]

常用的选项有:

运行方式:

  1. 交互式容器

    docker run -it centos /bin/bash
    

    表示:使用镜像 centos:latest 以交互模式启动一个容器,在容器内执行/bin/bash命令。

  2. 守护式容器

    docker run -d centos
    

    运行以后在进程中看不到对应的容器。因为 Docker 容器后台运行,就必须有一个前台进程。容器运行的命令如果不是那些一直挂起的命令,就会自动退出。

查看正在运行的容器

docker ps [OPTIONS]

常见的选项有

退出容器

  1. 停止退出

    在容器的交互式终端输入exit回车或者使用 "ctrl+D" 即可停止容器并退出

  2. 容器不停止退出

    即容器仍然在后台运行,但是推出交互式终端,使用 "ctrl+P+Q" 即可

启动容器

docker start 容器ID或者容器名

重启容器

docker restart 容器ID或者容器名

停止容器

  1. 正常停止

    docker stop 容器ID或者容器名
    
  2. 强制停止

    docker kill 容器ID或者容器名
    

删除已经停止的容器

docker rm 容器ID

如果需要一次性删除多个容器,可以使用:

docker rm -f $(docker ps -a -q)

或者

docker ps -a -q | xargs docker rm

查看日志

docker logs 容器 ID

通常添加如下选项:

查看容器内部

  1. 查看容器内部进程

    docker top 容器ID
    
  2. 查看容器内部细节

    docker inspect 容器ID
    

进入正在运行的容器

  1. exec 进入

    docker exec -it 容器ID /bin/bash
    

    在容器中打开新的终端,并且可以启动新的进程

  2. attach 进入

    docker attach 容器ID
    

    直接进入容器启动命令的终端,不会启动新的进程

拷贝

  1. 从容器拷贝到宿主机上:

    docker cp 容器ID:容器内路径 目标的宿主机目录
    
  2. 从宿主机拷贝到容器:

    docker cp 宿主机的目录 容器ID:容器内路径
    

不管容器是否启动,拷贝都会生效

常用命令-1583396362212.png
上一篇 下一篇

猜你喜欢

热点阅读