狂神说docker学习笔记2020

狂神说docker学习笔记2020文章目录狂神说docker学习笔记2020一 Docker概述(1)Docker的作用一 Docker的安装(1)Docker的基本组成(1)Docker的安装(2)卸载docker(3)docker 镜像的配置二 Docker run流程和Docker原理三 Docker的常用命令(1) 帮助命令(2) 镜像命令(3)容器命令(4) 其他容器命令(4) 小结(全部基础命令)四 Docker安装练习1 安装Nginx2 安装Nginx 安装 tomcat3 部署ES +
摘要由CSDN通过智能技术生成

狂神说docker学习笔记2020

一 Docker概述

(1)Docker的作用

首先说一下虚拟机的技术
在这里插入图片描述

容器技术
在这里插入图片描述
在这里插入图片描述
作用
在这里插入图片描述

一 Docker的安装

(1)Docker的基本组成

在这里插入图片描述
在这里插入图片描述

(1)Docker的安装

帮助文档:https://docs.docker.com/engine/install/centos/

# 1、卸载旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2、需要的安装包
sudo yum install -y yum-utils
# 3、设置镜像的仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache fast
# 4、安装docker相关的源 docker-ce 社区 ee 企业版
yum install docker-ce docker-ce-cli containerd.io

# 5、启动docker
systemctl start docker
# 6、使用 查看是否安装成功
docker version
# 7、测试运行docker 
 docker run hello-world

# 8、查看下载的这个 hello-world 镜像

(2)卸载docker

# 1、依赖卸载
yum remove docker-ce docker-ce-cli containerd.io

# 2、删除资源
rm -rf /var/lib/docker

# /var/lib/docker docker的默认工作路径

(3)docker 镜像的配置

创建或修改 /etc/docker/daemon.json 文件,修改为如下形式


# vi /etc/docker/daemon.json
{
   
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
systemctl restart docker.service

 sudo systemctl daemon-reload sudo systemctl restart docker

国内加速地址有:

Docker中国区官方镜像
https://registry.docker-cn.com

网易
http://hub-mirror.c.163.com

ustc
https://docker.mirrors.ustc.edu.cn

中国科技大学
https://docker.mirrors.ustc.edu.cn

阿里云容器 服务
https://cr.console.aliyun.com/
首页点击“创建我的容器镜像” 得到一个专属的镜像加速地址,类似于“https://1234abcd.mirror.aliyuncs.com”

(4)docker 更改镜像名字

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
pujh/centos         tomcat-centos       70ff7873d7cd        About an hour ago   612 MB
docker.io/centos    latest              9f38484d220f        11 days ago         202 MB
[root@localhost ~]# docker tag 70ff7873d7cd my_centos:tomcat-centos
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
my_centos           tomcat-centos       70ff7873d7cd        About an hour ago   612 MB
pujh/centos         tomcat-centos       70ff7873d7cd        About an hour ago   612 MB
docker.io/centos    latest              9f38484d220f        11 days ago         202 MB

[root@localhost ~]# docker rmi 70ff7873d7cd
Error response from daemon: conflict: unable to delete 70ff7873d7cd (cannot be forced) - image is being used by running container 70859e710147
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                    NAMES
70859e710147        70ff                "/bin/sh -c '/root..."   About an hour ago   Up About an hour            0.0.0.0:8090->8080/tcp   dazzling_hopper
[root@localhost ~]# docker stop 70859e710147 
[root@localhost ~]# docker rm 70859e710147 
[root@localhost ~]# docker rmi 70ff7873d7cd
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
my_centos           tomcat-centos       70ff7873d7cd        About an hour ago   612 MB
docker.io/centos    latest              9f38484d220f        11 days ago         202 MB

二 Docker run流程和Docker原理

运行流程图
在这里插入图片描述
原理
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三 Docker的常用命令

(1) 帮助命令

docker version      # 显示docker的版本信息
docker info         # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help   # 帮助命令

帮助文档的地址:https://docs.docker.com/reference/

(2) 镜像命令

查看所有本地主机上的镜像

docker images 

解释

[root@AlibabaECS ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        8 months ago        13.3kB

# 解释
REPOSITORY  镜像的仓库源
TAG         镜像的标签
IMAGE ID    镜像的id
CREATED     镜像的创建时间

# 可选项
	-a, --all      # 列出所有的镜像
	-q, --quiet    # 只显示镜像的id

docker search 搜索镜像
在这里插入图片描述

[root@AlibabaECS ~]# docker  search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   9911  

# 可选项
--filter , -f		Filter output based on conditions provided

# 通过收藏不小于5000 搜索镜像
docker search mysql -f=stars=5000

docker pull 下载镜像

# 下载镜像 docker pull 镜像名   [:tag]版本
[root@AlibabaECS ~]# docker pull mysql
Using default tag: latest # 如果不写tag,默认就是latest
latest: Pulling from library/mysql 
bf5952930446: Pull complete # 分层下载,docker image的核心 联合文件系统
8254623a9871: Pull complete 
938e3e06dac4: Pull complete 
ea28ebf28884: Pull complete 
f3cef38785c2: Pull complete 
894f9792565a: Pull complete 
1d8a57523420: Pull complete 
6c676912929f: Pull complete 
ff39fdb566b4: Pull complete 
fff872988aba: Pull complete 
4d34e365ae68: Pull complete 
7886ee20621e: Pull complete 
Digest: sha256:c358e72e100ab493a0304bda35e6f239db2ec8c9bb836d8a427ac34307d074ed # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址
# 两条命令等价
docker pull mysql
docker.io/library/mysql:latest

daocloud.io/library/

# 指定版本下载
docker pull mysql:5.7

[root@AlibabaECS ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
bf5952930446: Already exists 
8254623a9871: Already exists 
938e3e06dac4: Already exists 
ea28ebf28884: Already exists 
f3cef38785c2: Already exists 
894f9792565a: Already exists 
1d8a57523420: Already exists 
5f09bf1d31c1: Pull complete 
1b6ff254abe7: Pull complete 
74310a0bf42d: Pull complete 
d398726627fd: Pull complete 
Digest: sha256:da58f943b94721d46e87d5de208dc07302a8b13e638cd1d24285d222376d6d84
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

docker rmi 删除镜像

[root@AlibabaECS ~]# docker rmi -f 容器id                # 删除指定的容器
[root@AlibabaECS ~]# docker rmi -f  容器id 容器id 容器id  # 删除多个容器
[root@AlibabaECS ~]# docker rmi -f $(docker images -aq) # 删除全部容器

(3)容器命令

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习

docker pull centos

新建容器并启动

docker run [可选参数] image

# 参数说明
--name = "Name"    容器名字  tomcat01,tomcat02,用来区分容器
-d                 后台方式运行
-it                使用交互方式运行,进入容器查看区分
-p                 指定容器的端口 -p 80808080
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口
-p                 随机指定端口

# 测试,启动并进入容器
[root@AlibabaECS bin]# docker run -it centos /bin/bash
[root@94d468db18da /]# ls  # 查看容器内的centos,基础版本,很多命令都是不完善的!
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr


# 从容器中退回主机
[root@94d468db18da /]# exit

列出所有的运行的容器

# docker ps 命令
	 # 列出当前正在运行的容器
	-a   # 列出当前正在运行的容器+带出历史运行过的容器
  -n=? # 显示最近创建的容器
  -q   # 只显示容器的编号

退出容器

exit            # 直接容器停止并退出
Ctrl + P + Q    # 容器不停止退出

删除容器

docker rm 容器id                  # 删除指定容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq)    # 删除所有的容器
docker ps -aq|xargs docker rm    # 删除所有的容器

启动和停止容器的操作

docker start 容器id        # 启动容器
docker restart 容器id      # 重启容器
docker stop 容器id         # 停止当前正在运行的容器
docker kill 容器id         # 强制停止当前容器

(4) 其他容器命令

后台启动容器

# 命令 docker run -d 镜像名
[root@AlibabaECS /]# docker run -d centos

# 问题docker ps, 发现 centos 停止了

# 常见的坑, docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志
查看日志命令

docker logs -f -t --tail 容器,没有日志

# 自己编写一段shell脚本
[root@AlibabaECS /]# docker run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1;done"

# 显示日志
-tf                # 显示日志
--tail number      # 要显示的日志条数

[root@AlibabaECS /]# docker logs -tf  --tail 10   f1178d5b0bd8

在这里插入图片描述
查看容器中的进程信息ps

# 命令 docker top 容器id

[root@AlibabaECS /]# docker top f1178d5b0bd8
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                21626               21609               0                   while true;do echo kuangshen;sleep 1;done
root                27492               21626               0        

查看镜像源数据

[root@AlibabaECS /]# docker inspect f1178d5b0bd8 
[
    {
   
        "Id": "f1178d5b0bd8eea4e0734056c03b35da8a829390d7000d90f863f56fe59af2a3",
        "Created": "2020-08-31T05:10:13.714768846Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "while true;do echo kuangshen;sleep 1;done"
        ],
        "State": {
   
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 21626,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2020-08-31T05:10:13.994851078Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566",
        "ResolvConfPath": "/var/lib/docker/containers/f1178d5b0bd8eea4e0734056c03b35da8a829390d7000d90f863f56fe59af2a3/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/f1178d5b0bd8eea4e0734056c03b35da8a829390d7000d90f863f56fe59af2a3/hostname",
        "HostsPath": "/var/lib/docker/containers/f1178d5b0bd8eea4e0734056c03b35da8a829390d7000d90f863f56fe59af2a3/hosts",
        "LogPath": "/var/lib/docker/containers/f1178d5b0bd8eea4e0734056c03b35da8a829390d7000d90f863f56fe59af2a3/f1178d5b0bd8eea4e0734056c03b35da8a829390d7000d90f863f56fe59af2a3-json.log",
        "Name": "/stupefied_colden",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
   
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
   
                "Type": "json-file",
                "Config": {
   }
            },
            "NetworkMode": "default",
            "PortBindings": {
   },
            "RestartPolicy": {
   
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd"
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值