文 | 平哥 日期 | 20201112
一、Docker简介
Docker 是基于 Go 语言实现的开源容器项目。期望达到使项目运行环境“一次封装,到处运行”的目的。
学习Docker主要目的是能够做两件事情:
1.在Docker安装软件
2.把项目部署到Docker
Docker架构:
Docker 是通过安装在宿主机上的Daemon后台程序来接收客户端命令,创建容器实例,从远程镜像仓库中心拉取或创建镜像。
二、Docker安装与启动
Docker有windows和linux版本。本次操作以安装在Linux上进行演示的。
以下安装步骤基于CentOS8,需要确保该虚拟机可以连接外网。
1.Docker 安装
Step 1 上传安装包
Docker的安装可以分为在线安装和本地安装,由于需要连接Docker官网,网速感人且极易失败,于是我采用的是本地安装。
具体安装包:
链接: https://pan.baidu.com/s/1QYwLE0kkm6NfeHDQesmOog 密码: ljsk
将下载好的安装包上传至CentOS中:
Step 2 安装依赖和Docker
使用 yum localinstall
命令分别安装:
1、先安装 containerd.io:
# yum localinstall containerd.io-1.2.6-3.3.fc30.x86_64.rpm
2、安装 docker-ce:
# yum localinstall -y libcgroup
# yum localinstall -y docker-ce-cli-19.03.12-3.el7.x86_64.rpm
# yum localinstall -y docker-ce-19.03.12-3.el7.x86_64.rpm
Step 3 启动并检查Docker
启动命令:
# systemctl start docker
查看docker信息:
# docker info
结果如图:
Step 4 阿里云镜像加速器配置
默认情况下Docker从Docker Hub上下载镜像资源,但速度很慢,可以通过配置国内的镜像加速器来解决。
登录阿里云控制台,输入“容器镜像服务”进行搜索,点击“镜像加速器”:
在安装好的Docker的服务器上,按照页面说明配置daemon.json配置文件并重启即配置完成。
三、Docker镜像操作
3.1 列出本地所有镜像
命令:
# docker images
结果如图:
结果解释:
REPOSITORY:镜像所在的仓库名称
TAG:镜像标签(其实就是版本)
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
3.2 搜索远程镜像
若本地没有需要的镜像,则可以去远程镜像仓库中心进行搜索,命令:
# docker search mysql
结果如图:
结果解释:
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
3.3 拉取镜像
使用如下命令,即可从远程镜像仓库中拉取镜像:
docker pull mysql:latest
四、Docker容器操作
可以将Docker容器看成是最简单的Linux环境(包括系统内核、root用户权限、进程空间、网络空间和用户空间)和运行在其中的应用程序(比如MySQL)。
4.1 新建容器
命令:
docker create [options] 镜像名称或ID
例如:
# docker create --name mysqlgcp -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:latest
参数说明:
--name:用于给创建的容器重命名
-p:宿主机和docker容器的端口映射,hostPort:containerPort
-e:设置参数
有可能会用-v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
以上容器创建,但未运行。
4.2 查看容器
以下命令查看本地正在运行的容器:
# docker container ls
若想查看所有已经创建的容器,即包括未运行的容器(如4.1创建的容器),加入-l
参数:
# docker container ls -l
结果:
其他常用参数说明:
-n 数字
:显示最近n个创建的容器
-a
:列出所有的运行过的容器
-q
:列出容器id
4.3 启动容器
使用以下命令启动已创建的容器:
# docker start mysqlgcp
或:
# docker start 52bdd1defcd8
即可以使用容器名称或容器ID
4.4 与运行中的容器交互
使用如下命令与运行中的容器进行交互:
# docker exec [option] 容器ID [command]
例如:
docker exec -it 52bdd1defcd8 /bin/bash
参数说明:
-i
:以交互模式运行容器,通常与-t
连用
-t
:为容器重新分配一个伪终端,通常与-i
连用
效果如图:
从容器终端中退出,使用exit
命令
4.5 停止容器
命令如下:
# docker stop 容器名称或容器ID
4.6 创建并运行容器
命令如下:
# docker run [options] 镜像名称或镜像ID [COMMAND] [ARG...]
具体命令举例如下:
# docker run -p 3307:3306 --name mysqlgcp -e MYSQL_ROOT_PASSWORD=root -d mysql:latest