docker安装,镜像与容器操作

docker相关组件介绍

Docker使用C/S架构,Client通过接口与Server进程通信实现容器的构建,运行和发布,如图:
在这里插入图片描述

Host(Docker 宿主机)

安装了Docker程序,并运行了Docker daemon的主机。

Docker daemon(Docker 守护进程):

运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互。

Images(镜像):

将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器

Containers(容器):

Docker的运行组件,启动一个镜像就是一个容器,容器与容器之间相互隔离,并且互不影响。

Docker Client(Docker 客户端)

Docker命令行工具,用户是用Docker Client与Docker daemon进行通信并返回结果给用户。也可以使用其他工具通
过Docker Api 与Docker daemon通信。

Registry(仓库服务注册)

经常会和仓库(Repository)混为一谈,实际上Registry上可以有多个仓库,每个仓库可以看成是一个用户,一个用户
的仓库放了多个镜像。仓库分为了公开仓库(Public Repository)和私有仓库(Private Repository),最大的公开仓库是
官方的Docker Hub,国内也有如阿里云、时速云等,可以给国内用户提供稳定快速的服务。用户也可以在本地网络
内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次
在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

docker安装

以Centos7为例,且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上。
查看系统内核版本信息:uname -r

1.安装依赖软件包
yum install -y yum-utils device-mapper-persistent-data lvm2

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

3.更新yum软件包索引
yum makecache fast

4.安装docker
yum install docker-ce -y

5.配置阿里镜像加速

  1. 注册登录开通阿里云容器镜像服务
  2. 查看控制台,找到镜像加速器并复制自己的加速器地址
  3. 找到/etc/docker目录下的daemon.json文件,没有则直接 vi daemon.json(docker文件夹也可能没有)
  4. 加入以下配置: { “registry-mirrors”: [“https://zfzbet67.mirror.aliyuncs.com”] }
  5. 通知systemd重载此配置: systemctl daemon-reload
  6. 重启docker服务: systemctl restart docker

镜像操作

help:
cker COMMAND --help

查找镜像:
docker search 关键词
例子:docker search tomcat

下载镜像 :
docker pull 镜像名:TAG
( Tag表示版本,有些镜像的版本显示latest,为最新版本,如果是最新版TAG可省)
例子:docker pull tomcat

查看镜像:
docker images

删除镜像:
docker rmi -f 镜像ID或者镜像名:TAG

获取元信息:
docker inspect 镜像ID或者镜像名:TAG

容器操作

运行:

docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG
–name 指定容器名,可自定义,不指定自动命名
-i 以交互模式运行容器
-t 分配一个伪终端,即命令行,通常-it组合来使用
-p 指定映射端口,讲主机端口映射到容器内的端口
-d 后台运行容器
-v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读

例子: docker run --name lrytomcat -p 80:8080 -d tomcat(宿主机到容器的端口映射80:8080)

容器列表:
docker ps -a -q
docker ps查看正在运行的容器
-a 查看所有容器(运行中、未运行)
-q 只查看容器的ID

启动容器:
docker start 容器ID或容器名

停止容器:
docker stop 容器ID或容器名

删除容器:
docker rm -f 容器ID或容器名

查看日志:
docker logs 容器ID或容器名

进入正在运行容器
docker exec -it 容器ID或者容器名 /bin/bash

拷贝文件:
docker cp 主机文件路径 容器ID或容器名:容器路径( 主机中文件拷贝到容器中 )

docker cp 容器ID或容器名:容器路径 主机文件路径 (容器中文件拷贝到主机中)

获取容器元信息:
docker inspect 容器ID或容器名

tomcat安装示例

docker pull tomcat
docker run --name lrytomcat -p 80:8080 -d tomcat
访问浏览器出现tomcat主页

问题1:
docker启动tomcat容器访问端口显示404的问题,页面显示 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在

关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
docker exec -it lrytomcat /bin/bash
cd webapps
rm -f webapps
cp -r webapps.dist webapps

问题2:
IPv4 forwarding is disabled. Networking will not work.

在宿主机上执行 echo “net.ipv4.ip_forward=1” >>/usr/lib/sysctl.d/00-system.conf systemctl restart network && systemctl restart docker docker run --name lrytomcat -p 80:8080 -d tomcat