docker,零基础第一篇

特点

  1. docker可以实现虚拟化
  2. docker实现了一次部署,多处运行(实现服务的简单部署和快速部署)
  3. docker沙箱机制,实现了容器之间和容器与宿主机的隔离 

一个完整的docker由以下四个部分组成:

  1. dockerClient客户端
  2. dockerDaemon守护进程
  3. Docker镜像
  4. DockerContainer容器

docker使用理由:

  1. 快速部署服务
  2. 实现隔离
  3. 让一个主机运行多个容器
  4. 提高开发效率
  5. 简化配置过程
  6. 实现软件的跨平台

docker安装:

  1. 配置源 
    vim /etc/yum.repos.d/bocker.repo

    [docker-ce-stable]
    name=Docker CE Stable - $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-stable-debuginfo]
    name=Docker CE Stable - Debuginfo $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/stable
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-stable-source]
    name=Docker CE Stable - Sources
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/stable
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-edge]
    name=Docker CE Edge - $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/edge
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-edge-debuginfo]
    name=Docker CE Edge - Debuginfo $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/edge
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-edge-source]
    name=Docker CE Edge - Sources
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/edge
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-test]
    name=Docker CE Test - $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/test
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-test-debuginfo]
    name=Docker CE Test - Debuginfo $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/test
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-test-source]
    name=Docker CE Test - Sources
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/test
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-nightly]
    name=Docker CE Nightly - $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/nightly
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-nightly-debuginfo]
    name=Docker CE Nightly - Debuginfo $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/debug-$basearch/nightly
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [docker-ce-nightly-source]
    name=Docker CE Nightly - Sources
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/source/nightly
    enabled=0
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

    [epel]
    name=epel
    enabled=1
    gpgcheck=0
    baseurl=https://mirrors.aliyun.com/epel/7/x86_64/

    [extra]
    name=extra
    enabled=1
    gpgcheck=0
    baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/

    [alibase]
    name=alibase
    enabled=1
    gpgcheck=0
    baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/

     yum clean all
     yum makecache

  2. 下载repo文件
    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  3. 下载 docker-ce  #开源免费版
    yum install docker-ce -y  
  4. 配置镜像加速
    注册阿里云


  复制加速器地址
 
 编写加速脚本如下: vim ali.sh

#!/bin/bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]    #写个人的加速器地址
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl enable docker

  5. 运行脚本
    sh ali.sh
  

docker两大类操作

  • 镜像操作
  • 容器操作 

docker镜像操作:

 docker image --help   #获取docker镜像有关操作帮助信息

帮助信息:

Usage: docker image COMMAND

Manage images

Commands:
build 基于dockerfile创建镜像
history 查看镜像构建历史
import 从压缩归档包中导入镜像export
inspect 显示镜像的详细信息
load 从一个压缩包中导入镜像save
ls 列出当前的镜像
prune 移除不常使用的镜像
pull 从镜像仓库中拉取镜像
push 从本地镜像仓库推送到远程仓库
rm 删除镜像
save 保存一个镜像至压缩包
tag 修改镜像名

实例:

  1. 拉取镜像
    docker pull  镜像名 
    (docker pull 镜像名:tag#如果没有指定标签。默认是lastest,其后不再注释
  2. 查看镜像
    docker image ls
    (显示你docker下有的所有镜像)
  3. 查看镜像的构建历史
    docker history 镜像名 或 镜像的唯一标识id
    docker history 镜像名 --no-trunc     #不截断输出
  4. 从压缩包中导入镜像
    docker load -i 压缩包名  (如:docker load -i httpd_img.tar.gz )
    docker load < 压缩包名    (如:docker load < httpd_img.tar.gz )
  5. 把镜像制作成压缩包,方便存储和分享
    docker save 镜像名 > 压缩包名(如:docker save  busybox >  busybox.tar.gz)
    docker save 镜像名:标签信息  -o 压缩包名 (如;  docker save busybox:latest -o busybox1.tar.gz )
  6. 删除镜像
    docker image rm 镜像名
  7. (强制)删除不经常使用镜像
    docker image prune -f
  8. 查看镜像详细信息
    docker inspect  镜像名
  9. 镜像改名
    docker tag 镜像名:标签信息 新镜像名

容器操作:

  docker container --help   #获取docker容器操作有关帮助信息

帮助信息: 

Usage: docker container COMMAND

Manage containers

Commands:
attach 进入容器,退出时容器会结束
commit 基于容器创建新镜像
cp 实现了容器和宿主机之间的文件共享
create 创建新的容器
diff 查看容器有哪些文件被改变了
exec 执行命令或者进入容器
export 导出容器的文件至压缩包import
inspect 查看容器详细信息
kill 强制杀掉容器 kill -9
logs 获取容器日志
ls 查看容器
ps 查看运行容器
pause 暂停容器
port 查看容器的端口映射信息
prune 移除不常使用的容器
rename 容器改名
restart 重启容器
rm 删除容器
run 运行命令。运行容器
start 启动容器
stats 容器运行状态
stop 优雅退出容器 kill -15
top 查看容器运行状态
unpause 解除暂停
update 更新容器的CPU,内存等信息
wait 等待容器退出,并打印退出状态吗

 实例:

  1.  创建容器 
    docker run -d --name 容器名 --rm  镜像名   #注意:容器名字是不能重合的
    (如:  docker run -d --name ken --rm httpd )
  2. 查看运行的容器
    docker ps        #只能查看正在运行的容器
    docker ps -a     #查看正在运行以及退出状态的容器
    docker ps -aq   #只显示容器id
  3. 停掉容器
    docker stop 容器名或者容器ID       #停掉单个容器
    docker stop $(docker ps -aq)         #批量停掉容器
    docker rm -f $(docker ps -aq)        #(强制)批量删除容器
  4. 查看容器详细信息
    docker inspect  容器名或者容器ID
  5. 容器运行状态
    docker stats 容器名或者容器ID
  6. 查看容器运行状态
    docker top 容器名或者容器ID
  7. 获取容器日志
    docker logs 容器名或者容器ID
    docker logs 容器名或者容器ID -f      #持续刷新容器日志
  8. 暂停容器
     docker pause 容器名或者容器ID
  9. 解除暂停
    docker unpause   容器名或者容器ID
  10. 容器重命名
     docker rename 旧容器名  新容器名
  11. 查看容器端口映射信息
    docker port   容器名或者容器ID
  12. 进入容器
    docker exec -it  容器名或者容器ID  /bin/sh 
  13. 在容器外使容器执行命令
    docker exec  容器名或者容器ID 命令
  14. 复制宿主机文件至容器
    docker cp 宿主机文件名  容器名或容器 ID:容器地址
    (如:docker cp docker-speed.sh 0192e3d550d2:/usr/local/apache2/htdocs)
    复制容器内的文件至宿主机
    docker cp  容器名或容器 ID:容器文件绝对路径  宿主机路径
    (如: docker cp 0192e3d550d2:/usr/local/apache2/htdocs/index.html . )
  15. 查看容器内那些文件被改变了
    docker diff  容器名或容器ID

   

猜你喜欢

转载自www.cnblogs.com/birdyw/p/11801197.html