Docker 基础
Docker / 更新于4天前

Docker 基础

应用应该脱离底层硬件的限制,在任何时间与地点可以获取 ,Docker就是基于此思想 ,可以快速分发与部署。

有了docker可以轻松将网站在不同操作系统,不同云服务器中迁移。只要把容器打包,就可以轻松部署。不需要像过去一样,重复安装 mysql/php/apache....。

与虚拟机比较

  • 使用内核虚拟化技术速度更快
  • 系统资源点用少,一台主机上可以同时运行数千个 Docker 容器。
  • 起动速度秒级,而虚拟机分钟级
  • 硬盘占用更少,虚拟机是完整系统占用往往达到G级

官网文档: https://docs.docker.com/install/overview/

基础知识

镜像

镜像类似于虚拟机中的镜像,镜像是只读的,可以方便的从网上下载镜像,类似面向对象编程中的类。

容器

容器是从镜像创建的运行对象。可以启动/删除/停止,容器间都是相互独立的,类似面向对象编程中的对象。

仓库

类型于管理镜像的GITHUB,可以将镜像提交到仓库,供其他用户或其他平台轻松使用。

ubuntu

环境配置

  1. 删除旧版本

    sudo apt-get remove docker docker-engine docker.io containerd runc
  2. 更新apt包索引:

    sudo apt-get update
  3. 安装包以允许apt通过HTTPS使用存储库:

    sudo apt-get install \
       apt-transport-https \
       ca-certificates \
       curl \
       gnupg-agent \
       software-properties-common
  4. 添加Docker的官方GPG密钥:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通过搜索指纹的最后8个字符,验证您现在拥有带指纹的密钥 。

    sudo apt-key fingerprint 0EBFCD88
    
    pub   rsa4096 2017-02-22 [SCEA]
         9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
    uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
    sub   rsa4096 2017-02-22 [S]
  5. 添加软件源

    sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"

    某些系统更新失败时,使用命令 sudo software-properties-gtk 在软件的 Other Software标签中将 https://download.docker.com/linux/ubuntu 源的distribution 值设置为 bionic

  6. 更新apt包索引。

    sudo apt-get update

安装方法

  1. 安装最新版本的Docker CE和containerd,或者转到下一步安装特定版本:

    sudo apt-get install docker-ce docker-ce-cli containerd.io
  2. 通过运行hello-world 映像验证是否正确安装了Docker CE 。

    sudo docker run hello-world

进程维护

  1. 停止、启动、重启docker

    sudo systemctl start | stop | restart docker.service
  2. 查看docker版本

    sudo docker version
  3. 加入开机自启

    sudo systemctl enable docker
  4. 开机启动检测

    sudo systemctl list-unit-files | grep docker 

维护

升级

要升级Docker CE,请先运行sudo apt-get update

卸载

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker docker.io

sudo rm -rf /var/lib/docker

sudo apt autoremove         

普通帐号

每次运行docker都要使用 sudo,下面介绍使用当前登录帐号执行 docker 的方法 。

  1. 创建docker组。

    sudo groupadd docker
  2. 将您的用户添加到该docker组。

    sudo usermod -aG docker $USER
  3. 注销并重新登录,以便重新评估您的组成员身份。

    如果在虚拟机上进行测试,则可能需要重新启动虚拟机才能使更改生效。

    在桌面Linux环境(如X Windows)上,完全注销会话,然后重新登录。

  4. 验证您是否可以运行docker命令sudo

    docker run hello-world

基本使用

安装镜像

# 搜索镜像
docker search ubuntu

# 安装ubuntu镜像
docker pull ubuntu

# 查看镜像列表
docker images

删除镜像

可以使用name或tag删除镜像,要保证没有容器使用该镜像。

docker rmi -f ubuntu:latest

容器管理

以守护进程启动容器

docker run -tid ubuntu /bin/bash

查看运行的容器

docker ps

登录容器

docker exec -it 3c5e00452777 /bin/bash

停止容器

docker stop 3c5e00452777            

启动停止的容器

docker start 3c5e00452777

删除容器

docker rm -f ubuntu:latest
向军大叔
我们的使命:传播互联网前沿技术,帮助更多的人实现梦想
Copyright © 2010-2018 houdunren.com All Rights Reserved 京ICP备12048441号-3
: 010-86467608 : 2300071698@qq.com
编码: 向军大叔