Docker

这篇博客详细介绍了Docker的安装、常用命令、容器管理、镜像原理、数据卷使用、Dockerfile编写以及企业实战等内容,包括如何配置镜像加速、安装nginx、tomcat、部署ES+Kibana等,还探讨了Docker的可视化工具Portainer和网络配置。
摘要由CSDN通过智能技术生成

目录

1. 安装

1.1 参考官网进行安装

1.2 镜像加速配置

2. 常用命令

2.1 帮助命令

2.2 Docker命令

2.2.1 docker images

2.2.2 docker search

2.2.3 docker pull

2.2.4 docker rmi

2.3 容器命令

2.3.1 下载centos镜像

2.3.2 新建容器并启动

2.3.4 列出所有正在运行的容器

2.3.5 删除容器

2.3.6 启动和停止容器

2.4 常用其他命令

2.4.1 后台启动容器

2.4.2 查看日志

2.4.3 查看容器进程信息

2.4.4 查看镜像元数据

2.4.5 进入当前正在运行的容器

2.4.6 从容器内拷贝文件到主机上

3. 练习

3.1 docker安装nginx

3.2 docker安装tomcat

3.3 docker部署ES + Kibana

4. 可视化

4.1 portainer

5. 镜像

5.1 联合文件系统 UnionFS

5.2 docker镜像加载原理

5.3 分层理解

5.4 Commit镜像

6. 容器数据卷

6.1 -v参数设置    

6.1.1 示例:安装mysql   

6.1.2 具名挂载和匿名挂载

6.1.3 如何确定是匿名挂载,具名挂载还是指定路径挂载?

6.1.4 容器内路径访问权限

6.2 dockerfile方式

6.3 数据卷容器

7. DockerFile

7.1 查看官网上centos是如何构建的

7.2 Dockerfile构建过程

7.3 Dockerfile指令

7.4 实战

7.4.1 自定义centos镜像

7.4.2 CMD与ENTRYPOINT

7.4.3 Tomcat镜像

7.5 发布镜像

8. Docker网络

9. 企业实战

10. Docker Compose

11. Docker swarm

12. CI/CD


1. 安装

官网地址:Install Docker Engine on CentOS | Docker Documentation

1.1 参考官网进行安装

1.2 镜像加速配置

    1)路径:进入阿里云 -- 控制台 -- 容器镜像服务 -- 镜像工具 -- 镜像加速器

    2)配置:根据阿里云上的操作文档进行配置即可

2. 常用命令

    官网链接:Reference documentation | Docker Documentation

2.1 帮助命令

docker version
docker info
docker 命令 --help

2.2 Docker命令

2.2.1 docker images

    查看容器中的所有镜像

REPOSITORY           TAG       IMAGE ID       CREATED         SIZE
hello-world          latest    d1165f221234   2 months ago    13.3kB


REPOSITORY: 镜像的仓库源
TAG: 镜像标签
IMAGE ID: 镜像ID
CREATED:镜像创建时间
SIZE:镜像大小

-a: 查询全部镜像
-q:只显示镜像ID(用于批量镜像删除使用)

2.2.2 docker search

    搜索镜像

docker search mysql -f=STARS=5000
  -f代表filter,表示按照给定的条件进行过滤,这里代表搜索STARTS大于等于5000的镜像

2.2.3 docker pull

    下载镜像

1. docker pull mysql:下载mysql镜像

[root@localhost ~]# docker pull mysql
Using default tag: latest #没有指定tag时默认下载最新版本
latest: Pulling from library/mysql
69692152171a: Pull complete   #分层下载 docker image的核心 联合文件系统
1651b0be3df3: Pull complete 
951da7386bc8: Pull complete 
0f86c95aa242: Pull complete 
37ba2d8bd4fe: Pull complete 
6d278bb05e94: Pull complete 
497efbd93a3e: Pull complete 
f7fddf10c2c2: Pull complete 
16415d159dfb: Pull complete 
0e530ffc6b73: Pull complete 
b0a4a1a77178: Pull complete 
cd90f92aa9ef: Pull complete 
Digest: sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  #镜像的真是地址,也就是docker pull mysql命令等价于docker pull docker.io/library/mysql:latest


2. docker pull mysql:5.7 指定下载mysql5.7版本的镜像

2.2.4 docker rmi

    删除镜像

1. docker rmi -f 镜像ID
Untagged: mysql:5.7
Untagged: mysql@sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Deleted: sha256:2c9028880e5814e8923c278d7e2059f9066d56608a21cd3f83a01e3337bacd68
Deleted: sha256:c49c5c776f1bc87cdfff451ef39ce16a1ef45829e10203f4d9a153a6889ec15e
Deleted: sha256:8345316eca77700e62470611446529113579712a787d356e5c8656a41c244aee
Deleted: sha256:8ae51b87111404bd3e3bde4115ea2fe3fd2bb2cf67158460423c361a24df156b
Deleted: sha256:9d5afda6f6dcf8dd59aef5c02099f1d3b3b0c9ae4f2bb7a61627613e8cdfe562

2. 批量删除
docker rmi -f $(docker images -qa)

2.3 容器命令

    只有有了镜像才可以创建容器,下面以创建centos容器为例进行练习。

2.3.1 下载centos镜像

docker pull centos

2.3.2 新建容器并启动

docker run [可选参数] image

参数说明:
--name="xxx": 给容器起个名字,如tomcat01,tomcat02...,用来区分容器
-d:以后台方式运行容器
-it:以交互方式运行,进入容器查看内容
-p(小写):指定容器的端口
    (1)-p ip:主机端口:容器端口
    (2)-p 主机端口:容器端口(常用)
    (3)-p 容器端口
    (4)容器端口
-P(大写):随机指定端口

1. docker run -it centos /bin/bash
   启动一个centos容器,并通过交互方式进入容器,进入容器后使用/bin/bash进行交互
   通过exit命令可以退出容器,返回主机服务器
   
   exit: 退出容器,关闭容器
   ctrl + q + p:退出容器,但容器不关闭

2.3.4 列出所有正在运行的容器

docker ps:列出所有正在运行的容器
可选参数:
  -a: 列出所有正在运行的容器和历史运行过的容器
  -n=2: 显示最新创建的n个容器
  -q: 只显示容器id

2.3.5 删除容器

docker rm -f 容器id
docker rm -f $(docker ps -qa)
docker ps -qa | xargs docker rm

2.3.6 启动和停止容器

docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id

2.4 常用其他命令

2.4.1 后台启动容器

docker run -d centos
这个会导致容器创建后直接停止了(容器使用后台运行,就必须有一个前台进程应用,如果没有,则docker会自动停止该容器)

2.4.2 查看日志

1. 启动容器:
docker run -d centos /bin/sh -c "while true;do echo nihaoma;sleep 1;done"

2. 查看日志:
docker logs -tf --tail 10 容器ID
  --tail表示显示后n条

2.4.3 查看容器进程信息

docker top 容器ID

2.4.4 查看镜像元数据

docker inspect 容器ID

2.4.5 进入当前正在运行的容器

1. 方式1:开启一个新的交互终端,可以在里面进行操作
  docker exec -it 容器ID /bin/bash

2. 方式2:进入容器正在执行的终端
  docker attach 容器ID

2.4.6 从容器内拷贝文件到主机上

 docker cp bfc3aa9bf0df:/test.txt /
  将容器ID为bfc3aa9bf0df的文件/test.txt拷贝到主机的/目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值