Docker基础篇之快速上手(2):Docker安装

Docker安装

1 基本组成(三要素)

仓库(repository)

仓库(Repository)是集中存放镜像文件的场所。
仓库(Repository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是 Docker
Hub(https://hub.docker.com/), 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

镜像(image)

Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

容器(container)

Docker 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。
它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。 可以把容器看做是一个简易版的 Linux
环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

2 准备工作:

更新内核和yum库

yum update -y (y代表yes,即是一切提示都确认通过)

1.查看系统内核版本(必须是3.10以上)

uname -r

2.安装所需的依赖软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
在这里插入图片描述
由于已经更新过内核和yum库,此处已经安装过最新版本,该操作是为了测试是否已经成功安装。
3.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

使用以上命令设置稳定存储库。 您始终需要稳定的存储库,即使您也想从边缘或测试存储库安装构建。

3 安装&启动docker

1.安装docker

yum install -y docker

2.启动并设置为开机启动docker

systemctl start docker
systemctl enable docker

3.查看docker版本,确认是否安装成功

docker --version

4.登录阿里云-》产品与服务-》容器镜像服务-》镜像加速器
在这里插入图片描述
按黑色部分配置或者

5.配置docker镜像加速器
在这里插入图片描述

6.停止docker

systemctl stop docker

4 常用操作

1)镜像操作

操作命令说明
检索docker search 关键字去docker hub上检索镜像,如镜像的tag
拉取docker pull 镜像名:tag:tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表docker images查看所有本地镜像
删除docker rmi image-id删除指定的本地镜像

2)容器操作

操作命令说明
运行docker run --name container-name -d image-name–name:自定义容器名
-d:后台运行
image-name:指定镜像模板
列表docker ps(查看运行中的容器)加上-a可以查看所有容器
停止docker stop container-name/container-id停止当前你运行的容器
启动docker start container-name/container-id启动容器
删除ddocker rm container-id删除指定容器
端口映射-p 6379:6379
eg:docker run -d -p6379:6379 --name myredis docker:io/redis
-p:主机端口(映射到)容器内部的端口
容器日志docker logs container-name/container-id
在运行的容器中执行命令docker exec -it containerId /bin/bash
进入后查看用cat
doker exec containerId 命令(eg:java -version)

端口测试时可能由于防火墙问题不能访问,本人没遇到

service firewalld status 查看防火墙状态

service firewalld stop 关闭防火墙

3)辅助命令

docker --help

docker -version

docker info

查看容器日志,mysql容器创建时没有指定初始值密码会报如下错,此时查看容器日志可以分析得到

[root@localhost local]# docker logs 84c3f5077053
error: database is uninitialized and password option is not specified
  You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

docker logs containerId

安装jenkins时,由于挂载目录卷用户为root,而jenkins用户为jenkins会出现如下错误
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied

解决方案:sudo chown -R 1000 绝对路径

5.在docker容器上安装*************等等

下图ribbitmq错误,应该为rabbitmq!!!
在这里插入图片描述
知识点总结:
镜像和容器的关系,就像类和对象的关系类似

1.查找

docker search tomcat

2.从镜像仓库中拉取

docker pull tomcat:8

3.查看已经获取的镜像

docker images

4.列出所有正在运行的容器

docker ps -a

-a :显示所有的容器,包括未运行的。

5.删除容器

docker rm containerId

6.删除镜像

docker rmi imageId

7.创建并运行容器
tomcat8:

docker run -d --name tomcat1 -p 9000:8080 78b258e36eed

-d :后台运行容器
–name:容器名字
9000:通知服务器(虚拟机)的端口,对外暴露
8080:tomcat对外暴露的端口
78b258e36eed:tomcat镜像id

mysql:

docker run -d --name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123 a876cc5d29e4

-e:环境变量
MYSQL_ROOT_PASSWORD=abc123:密码
a876cc5d29e4 :镜像id

8.启动一个或多个已经被停止的容器

docker start containerId

6.容器数据卷

能干嘛

容器的持久化和容器之间继承+共享数据

数据卷

如何添加?

1.直接-v命令添加

docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

只读:

docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

和redis的rdp和aop类似,主机修改后,容器也会同步

可以用docker inspect命令查看是否挂载成功

2.使用Dockerfile

镜像的脚本文件,类似于linux的shell编程

docker build -f 绝对路径 -t 镜像名称 .

数据卷容器

拓展:子容器继承父容器,数据共享

容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用他为止

命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器

docker run -it --name dc02 --volumes-from zzyy/centos

7.构建镜像

1.通过docker commit命令 容器方式构建

2.通过docker build命令 Dockerfile文件方式构建

大致流程

  1. docker从基础镜像运行一个容器(FROM)
  2. 执行一条指令并对容器进行修改
  3. 执行类似docker commit的操作提交一个新的镜像层(ADD)
  4. docker再基于刚提交的镜像运行一个新容器
  5. 执行dockerfile中的下一条指令直到所有指令都执行完成
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值