微服务:docker

Docker是一个快速交付应用、运行应用的技术:

  1. 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统

  2. 运行时利用沙箱机制形成隔离容器,各个应用互不干扰

  3. 启动、移除都可以通过一行命令完成,方便快捷

镜像(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 #读取


测试

  1. 去DockerHub搜索Redis镜像

  2. 查看Redis镜像的名称和版本

docker images redius
  1. 利用docker pull命令拉取镜像
docker pull redius
  1. 利用docker save命令将 redis:latest打包为一个redis.tar包
docker -o redis.tar redis:latet
  1. 利用docker rmi 删除本地的redis:latest
docker rmi redius:latest
  1. 利用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[容器名][要执行的命令] 进入容器内部进行修改,但不推荐。

posted @ 2022-03-11 21:49  Boerk  阅读(49)  评论(0)    收藏  举报