微服务:docker
Docker是一个快速交付应用、运行应用的技术:
-
可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
-
运行时利用沙箱机制形成隔离容器,各个应用互不干扰
-
启动、移除都可以通过一行命令完成,方便快捷
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
centOS7安装docker
- 卸载已有的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
- 安装docker
首先需要大家虚拟机联网,安装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
然后输入命令:
yum install -y docker-ce
docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
- 关闭防火墙(学习阶段)
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
通过命令启动docker:
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
然后输入命令,可以查看docker版本:
docker -v
- 配置镜像
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
镜像相关的命令
-
镜像名称一般分两部分组成:[repository]:[tag]。如:mysql:5.7
-
在没有指定tag时,默认是latest,代表最新版本的镜像
-
docker save [OPTIONS] IMAGE [IMAGE]如:
docker save -o nginxtar nginx:latest
-
docker images #查看
-
docker rmi #删除
-
docker pull #
-
docker push
-
docker save # 保存
-
docker load #读取
测试
-
去DockerHub搜索Redis镜像
-
查看Redis镜像的名称和版本
docker images redius
- 利用docker pull命令拉取镜像
docker pull redius
- 利用docker save命令将 redis:latest打包为一个redis.tar包
docker -o redis.tar redis:latet
- 利用docker rmi 删除本地的redis:latest
docker rmi redius:latest
- 利用docker load 重新加载 redis.tar文件
docker load -i redis.tar
容器相关命令
创建运行一个Nginx容器
docker run --name containerName -p 80:80 -d nginx
-
docker run :创建并运行一个容器
-
--name : 给容器起一个名字,比如叫做mn,需要唯一
-
-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-
-d:后台运行容器
-
lnginx:镜像名称,例如nginx
-
docker logs:查看日志,需要参数,如:
docker logs mn
-
docker logs -f mn:跟踪日志。
-
docker ps:查看容器状态
-
docker exec:进入容器的内部
- -it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容易交互。
- bash:是linux终端交互命令
docker exec -it mn bash
| 命令 | 作用 |
|---|---|
| docker rm mn | 将mn容器删除,不能删除运行中的容器,除非使用-f强制删除。 |
| docker start mn | 启动mn容器 |
| docker stop mn | 停止mn容器 |
| docker pause mn | 暂停mn容器 |
| docker unpause | 继续mn容器 |
| docker exec -it[容器名][要执行的命令] | 进入容器内部进行修改,但不推荐。 |

浙公网安备 33010602011771号