Docker笔记

安装Docker

环境准备

1,需要会一点点的Linux基础

2,CentOS 7

3,我们使用Xshell 连接远程服务器进行操作!

环境查看

# 系统内核是 3.10 以上的
[root@iZj83aen795zmfZ ~]# uname -r
3.10.0-514.26.2.el7.x86_64
# 系统版本
[root@iZj83aen795zmfZ ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

Docker 安装

# 1,卸载旧的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2,需要的安装包
yum install -y yum-utils

# 3,设置镜像的仓库
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
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
sudo systemctl start docker

# 6,测试是否安装成功
docker version

# 7,hello-world
docker run hello-world

# 8,查看一下下载的这个 hello-world
sudo docker images

了解:卸载docker

# 1,卸载docker
yum remove docker-ce docker-ce-cli containerd.io

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

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

阿里云镜像加速

1,登录阿里云找到容器服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y6p7tTZo-1594604193582)(C:\Users\25775\AppData\Roaming\Typora\typora-user-images\image-20200609104010285.png)]

2,找到镜像加速地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EIGuh70U-1594604193585)(C:\Users\25775\AppData\Roaming\Typora\typora-user-images\image-20200609104132356.png)]

3,配置使用

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
   
  "registry-mirrors": ["https://qbcjgfqj.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

回顾 Hello world流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RAuOoeWe-1594604193586)(C:\Users\25775\AppData\Roaming\Typora\typora-user-images\image-20200609105004733.png)]

Docker的常用命令

帮助命令

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

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

镜像命令

查看镜像

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

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

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

docker search 搜索镜像

[root@iZj83aen795zmfZ ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   9597                [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3489                [OK]      

#	可选项,通过搜索来过滤
 --filter=STARS=3000   # 搜索出来的镜像就是STARS大于3000的

**docker pull **下载镜像

# 下载镜像 docker pull 镜像名[:tag]
[root@iZj83aen795zmfZ ~]# docker pull mysql
Using default tag: latest    # 如果不写 tag,默认就是 latest
latest: Pulling from library/mysql
8559a31e96f4: Pull complete  # 分层下载,docker images的核心 联合文件系统
d51ce1c2e575: Pull complete 
c2344adc4858: Pull complete 
fcf3ceff18fc: Pull complete 
16da0c38dc5b: Pull complete 
b905d1797e97: Pull complete 
4b50d1c6b05c: Pull complete 
c75914a65ca2: Pull complete 
1ae8042bdd09: Pull complete 
453ac13c00a3: Pull complete 
9e680cd72f08: Pull complete 
a6b5dc864b6c: Pull complete 
Digest: sha256:8b7b328a7ff6de46ef96bcf83af048cb00a1c86282bfca0cb119c84568b4caf6 # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址

# 等价于它
docker pull mysql
docker pull docker.io/library/mysql:latest

# 指定版本下载
[root@iZj83aen795zmfZ ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
8559a31e96f4: Already exists 
d51ce1c2e575: Already exists 
c2344adc4858: Already exists 
fcf3ceff18fc: Already exists 
16da0c38dc5b: Already exists 
b905d1797e97: Already exists 
4b50d1c6b05c: Already exists 
d85174a87144: Pull complete 
a4ad33703fa8: Pull complete 
f7a5433ce20d: Pull complete 
3dcd2a278b4a: Pull complete 
Digest: sha256:32f9d9a069f7a735e28fd44ea944d53c61f990ba71460c5c183e610854ca4854
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7



docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

**docker rmi **删除镜像

docker rmi -f 容器id   # 删除指定的容器
docker rmi -f 容器id 容器id 容器id    # 删除多个容器
docker rmi -f $(docker images -aq)  # 删除全部容器

容器命令

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

新建容器并启动

docker pull centos

docker run [可选参数] image

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

# 测试,启动并进入容器
[root@iZj83aen795zmfZ ~]# docker run -it centos /bin/bash
[root@339ebca40b44 /]# ls       # 查看容器内的centos
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

#从容器中退回主机
exit

列出所有的运行的容器

docker ps        # 运行中的容器

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

退出容器

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

删除容器

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

启动和停止容器的操作

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

常用其他命令

后台启动容器

# 命令 docker run -d 镜像名!
docker run -d centos

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

查询日志

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

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

# 显示日志
docker logs -tf --tail 10 69c8a0b7ab70

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

查看容器中的进程信息

# 命令 docker top 容器id 
docker top 69c8a0b7ab70

UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                11241               11222               0                   

查看镜像的元数据

# 命令
docker inspect 容器id

#测试
[root@iZj83aen795zmfZ ~]# docker inspect 69c8a0b7ab70
[
    {
   
        "Id": "69c8a0b7ab7033c47f1f198eba833afe03167cc4262dfc2cde1d219010cb34a6",
        "Created": "2020-06-10T09:14:50.736664535Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "while true;do echo qianjue;sleep 1;done"
        ],
        "State": {
   
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 11241,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2020-06-10T09:14:51.076652595Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:470671670cac686c7cf0081e0b37da2e9f4f768ddc5f6a26102ccd1c6954c1ee",
        "ResolvConfPath": "/var/lib/docker/containers/69c8a0b7ab7033c47f1f198eba833afe03167cc4262dfc2cde1d219010cb34a6/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/69c8a0b7ab7033c47f1f198eba833afe03167cc4262dfc2cde1d219010cb34a6/hostname",
        "HostsPath": "/var/lib/docker/containers/69c8a0b7ab7033c47f1f198eba833afe03167cc4262dfc2cde1d219010cb34a6/hosts",
        "LogPath": "/var/lib/docker/containers/69c8a0b7ab7033c47f1f198eba833afe03167cc4262dfc2cde1d219010cb34a6/69c8a0b7ab7033c47f1f198eba833afe03167cc4262dfc2cde1d219010cb34a6-json.log",
        "Name": "/nostalgic_hodgkin",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig":
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字乡村和智慧农业的数字化转型是当前农业发展的新趋势,旨在通过应用数字技术,实现农业全流程的再造和全生命周期的管理服务。中国政府高度重视这一领域的发展,提出“数字中国”和“乡村振兴”战略,以提升国家治理能力,推动城乡融合发展。 数字乡村的建设面临乡村治理、基础设施、产业链条和公共服务等方面的问题,需要分阶段实施《数字乡村发展战略纲要》来解决。农业数字化转型的需求包括满足市民对优质农产品的需求、解决产销对接问题、形成优质优价机制、提高农业劳动力素质、打破信息孤岛、提高农业政策服务的精准度和有效性,以及解决农业融资难的问题。 数字乡村建设的关键在于构建“1+3+4+1”工程,即以新技术、新要素、新商业、新农民、新文化、新农村为核心,推进数据融合,强化农业大数据的汇集功能。数字农业大数据解决方案以农业数字底图和数据资源为基础,通过可视化监管,实现区域农业的全面数字化管理。 数字农业大数据架构基于大数据、区块链、GIS和物联网技术,构建农业大数据中心、农业物联网平台和农村综合服务指挥决策平台三大基础平台。农业大数据中心汇聚各类涉农信息资源和业务数据,支持大数据应用。信息采集系统覆盖市、县、乡、村多级,形成高效的农业大数据信息采集体系。 农业物联网平台包括环境监测系统、视频监控系统、预警预报系统和智能控制系统,通过收集和监测数据,实现对农业环境和生产过程的智能化管理。综合服务指挥决策平台利用数据分析和GIS技术,为农业决策提供支持。 数字乡村建设包括三大服务平台:治理服务平台、民生服务平台和产业服务平台。治理服务平台通过大数据和AI技术,实现乡村治理的数字化;民生服务平台利用互联网技术,提供各类民生服务;产业服务平台融合政企关系,支持农业产业发展。 数字乡村的应用场景广泛,包括农业生产过程、农产品流通、农业管理和农村社会服务。农业生产管理系统利用AIoT技术,实现农业生产的标准化和智能化。农产品智慧流通管理系统和溯源管理系统提高流通效率和产品追溯能力。智慧农业管理通过互联网+农业,提升农业管理的科学性和效率。农村社会服务则通过数字化手段,提高农村地区的公共服务水平。 总体而言,数字乡村和智慧农业的建设,不仅能够提升农业生产效率和管理水平,还能够促进农村地区的社会经济发展,实现城乡融合发展,是推动中国农业现代化的重要途径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值