- 01 引言
- 02 docker 安装
- 2.1 Windows下安装docker
- 2.2 Mac下安装docker
- 2.3 Linux下安装docker
- 2.4 镜像加速
- 2.4.1 Linux下的配置方式
- 2.4.2 Windows下的配置方式
- 2.4.3 Mac下的配置方式
- 03 docker 相关概念
- 04 docker 命令
- 4.1 docker 命令模板
- 4.1 docker 操作
- 4.1.1 镜像相关
- 4.1.2 容器相关
- 4.1.3 仓库相关
- 4.2 docker 修饰符
- 4.3 docker 操作对象
- 4.4 docker 对象内容
- 05 总结
在前面的博客,关于容器化技术,我写了相关的博客,有兴趣的同学可以参阅下:
- 《漫谈容器化技术》
- 《漫谈容器化技术(docker原理篇)》
本文主要讲解的是docker
的使用,从安装到命令集。
在 《漫谈容器化技术(docker原理篇)》首先我们需要知道,docker
并非是一个通用的容器工具,它依赖于已存在并运行的Linux
内核环境。
所以,安装docker必须先安装Linux!
2.1 Windows下安装docker如果要在Windows
安装docker
,那么我们要先在Windows
下安装虚拟机,然后虚拟机安装Linux
环境,然后在虚拟机的安装的Linux
环境再安装Docker
,这个过程是很麻烦的。还好docker
官网为我们提供了docker
的Windows
桌面版,简化了我们的安装操作,具体的下载地址:https://hub.docker.com/editions/community/docker-ce-desktop-windows
这里不再详述在Windows下安装docker了,一直点击下一步即可安装成功!
2.2 Mac下安装docker与Windows的安装方式一样,我们也可以在docker官网下载安装包安装docker,官网地址:https://docs.docker.com/desktop/mac/install/ 当然,也可以使用homebrew命令来安装:
brew install --cask --appdir=/Applications docker
2.3 Linux下安装docker
可以使用官方安装脚本自动安装,安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud
一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
当然还有手动安装的方式,本文不再详述,自行百度。
2.4 镜像加速国内从 DockerHub 拉取镜像有时会很慢,可以配置镜像加速器,主流配置如下:
- 【科大镜像】:https://docker.mirrors.ustc.edu.cn/
- 【网易】:https://hub-mirror.c.163.com/
- 【阿里云】:https://.mirror.aliyuncs.com
- 【七牛云加速器】:https://reg-mirror.qiniu.com
下面提出不同操作系统下的配置方式,其中检验是否配置成功的脚本代码如下,如果能看到镜像地址改为了自己配置的,说明配置成功了:
$ docker info
Registry Mirrors:
https://reg-mirror.qiniu.com
2.4.1 Linux下的配置方式
1.在 /etc/docker/daemon.json
中写入如下内容(如果文件不存在请新建该文件):
{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
2.配置完重新启动服务:
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
2.4.2 Windows下的配置方式
打开docker
桌面版软件,打开设置Settings
,然后配置Registrymirrors
一栏填写加速器地址:
跟Windows
配置相似,在任务栏点击 Docker for mac
应用图标-> Perferences...
-> Daemon
-> Registrymirrors
,在列表中填写加速器地址:
docker
实践前,需要先熟悉以下几个概念:
Docker Machine
一个简化Docker
安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker
主机Docker Host
一个物理或者虚拟的机器用于执行 Docker
守护进程和容器。客户端Docker Client
Docker
客户端通过命令行或者其他工具使用 Docker SDK
(https://docs.docker.com/develop/sdk/) 与 Docker
的守护进程通信。仓库Repository
Docker
仓库用来保存镜像,可以理解为代码控制中的代码仓库。镜像Image
Docker
镜像是用于创建Docker
容器的模板,比如Ubuntu
系统。容器Container
容器是独立运行的一个或一组应用,是镜像运行时的实体。
提示:可以把镜像看做java
的类class
模板,容器看成一个实例对象 new Object()
我整理了docker
命令的模板,先示例一个docker
命令:
docker run -i -t ubuntu:15.10 /bin/bash
可以看到命令的组成格式如下,下面来讲解各组成部分有哪些内容:
格式:docker(声明为docker命令)+ 操作(run) + 参数修饰符(-i -t) + 操作对象(ubuntu:15.10
)+ 对象里面的内容(/bin/bash
)
docker
命令后面除了跟了run
操作,还有以下方法,整理如下:
可以通过命令docker command --help
更深入的了解指定的 docker
命令使用方法。
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
rm删除容器docker rm -f 1e560fca3906update更新容器设置abebf7571666容器重启策略:docker update --restart=always abebf7571666
logs查看容器日志docker logs -f bf08b7f2cd89stats监控容器docker stats —no-streamport查看端口的绑定情况docker port adoring_stonebrakernetwork新建网络docker network create -d bridge test-netnetwork新建网络docker network create -d bridge test-net
4.1.3 仓库相关
操作解析示例命令login登录docker loginlogout退出docker logoutpush将自己的镜像推送到 Docker Hubdocker push username/ubuntu:18.04
4.2 docker 修饰符
修饰符解析示例命令-t新容器内指定一个伪终端或终端docker run -i -t ubuntu:15.10 /bin/bash-i允许你对容器内的标准输入 (STDIN) 进行交互docker run -i -t ubuntu:15.10 /bin/bash-d后台运行模式docker run -itd --name ubuntu-test ubuntu /bin/bash-f前台运行模式docker logs -f bf08b7f2cd89-f前台运行模式docker logs -f bf08b7f2cd89-e设置环境变量docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql-P将容器内部使用的网络端口随机映射到我们使用的主机上docker run -d -P training/webapp python app.py-a查看所有docker ps -a组合命令,如-itd交互式、终端、后台运行docker run -itd --name ubuntu-test ubuntu /bin/bash
4.3 docker 操作对象
操作对象解析示例命令镜像从仓库拉取的镜像imagesdocker pull ubuntu:13.10容器以镜像为基础创建的容器docker run -it ubuntu /bin/bash
4.4 docker 对象内容
对象内容解析示例命令容器里面执行命令在启动的容器里执行的命令docker run ubuntu:15.10 /bin/echo “Hello world”容器目录进入容器根目录docker exec -it 243c32535da7 /bin/bash环境变量设置环境变量docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql其它内容的操作其它内容的操作无
05 总结
本文从docker
安装入手,再讲到了docker的概念、指令,这些知识应该足以让我们入门了,如果要深入,还得我们多去实践,实践才能检验知识。
本文是通过阅读《菜鸟教程》整理的笔记,或许存在纰漏之处,欢迎大家留言指出并关注。本文完!