Docker基础安装教程

经验分享  2020-03-09 04:15   6503 docker

Docker 教程

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。



Docker的应用场景

  • Web 应用的自动化打包和发布。

  • 自动化测试和持续集成、发布。

  • 在服务型环境中部署和调整数据库或其他的后台应用。

  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。


Docker 的优点

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

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

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

与虚拟机比较

    使用内核虚拟化技术速度更快

    系统资源点用少,一台主机上可以同时运行数千个 Docker 容器。

    起动速度秒级,而虚拟机分钟级

    硬盘占用更少,虚拟机是完整系统占用往往达到G级

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

基础知识

镜像

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

容器

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

仓库

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

加速器

提升国内用户访问 Docker Hub 拉取镜像的速度及稳定性。

Linux

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。

macOS

Docker For Mac

右键点击桌面顶栏的 docker 图标,选择 Preferences ,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors 列表中加入下面的镜像地址:

http://f1361db2.m.daocloud.io

点击 Apply & Restart 按钮使设置生效。

Docker Toolbox 等配置方法请参考帮助文档

Windows

Docker For Windows

在桌面右下角状态栏中右键 docker 图标,修改在 Docker Daemon 标签页中的 json ,把下面的地址:

http://f1361db2.m.daocloud.io

加到" registry-mirrors"的数组里。点击 Apply 。

* 准备使用wsl(linux子系统)的请注意:目前 wsl 是不支持 docker 的守护进程的。

ubuntu

环境配置

删除旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

更新apt包索引:

sudo apt-get update

安装包以允许apt通过HTTPS使用存储库:

sudo apt-get install \
   apt-transport-https \
   ca-certificates \
   curl \
   gnupg-agent \
   software-properties-common

添加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 0EBFCD88pub   rsa4096 2017-02-22 [SCEA]
     9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88uid \          
     [ unknown] Docker Release (CE deb) <docker@docker.com>sub   rsa4096 2017-02-22 [S]

添加软件源

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

更新apt包索引。

sudo apt-get update

某些系统更新失败

当执行 apt-get update 失败时,使用命令 sudo software-properties-gtk 在软件的 Other Software标签中将 https://download.docker.com/linux/ubuntu 源的distribution 值设置为 bionic,也可以直接修改 /etc/apt/source.lists 文件。

安装方法

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

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

通过运行hello-world 映像验证是否正确安装了Docker CE 。

sudo docker run hello-world

进程维护

停止、启动、重启docker

sudo systemctl start | stop | restart docker.service

查看docker版本

sudo docker version

加入开机自启

sudo systemctl enable docker

开机启动检测

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.iosudo \
rm -rf /var/lib/dockersudo apt autoremove

普通帐号

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

创建docker组。

sudo groupadd docker

将您的用户添加到该docker组。

sudo usermod -aG docker $USER

注销并重新登录,以便重新评估您的组成员身份。

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

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

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

docker run hello-world

基本使用

镜像管理

# 搜索镜像docker search ubuntu# 安装ubuntu镜像docker pull ubuntu# 查看镜像列表docker images

删除镜像

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

docker rmi -f ubuntu:latest

批量删除镜像

docker rmi `docker images -q`

服务容器

以守护进程启动容器

docker run -tid ubuntu /bin/bash

查看运行的容器

docker ps

登录容器

docker exec -it 3c5e00452777 /bin/bash

停止容器

docker stop 3c5e00452777# kill 立刻停止容器,类似于直接关机docker kill 3c5e00452777

启动停止的容器

docker start 3c5e00452777

删除容器

docker rm -f ubuntu:latest

批量删除容器

docker rm `docker ps -a -q`

指定容器名

# 执行 ubuntu 镜像生成新容器 wx   docker run -tid --name wx  ubuntu /bin/bash

查看容器进程

docker top ubuntu

查看容器端口映射

docker port wx

查看容器元信息(如IP)

docker inspect wx

常用指定容器名+映射端口+映射文件夹

启动容器

docker run -tid -p 8080:80 -p 3309:3306 -v /www:/var/www/html --name web ubuntu /bin/bash

登录容器

docker exec -ti web /bin/bash
注:转载请注明出处为http://www.sandbean.com/article/120.html。

沙豆网 站长

追求卓越,奋斗不息!

167
文章
8441
点赞

更多文章