当前位置:   article > 正文

docker_docker注册表网址

docker注册表网址

一、Docker介绍

1、Docker介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 LinuxWindows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端 --客户端
  2. Docker Daemon守护进程 --服务端
  3. Docker Image镜像
  4. DockerContainer容器

Docker架构

Docker使用客户端-服务器架构。Docker客户端与Docker守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以 在同一系统上运行,或者您可以将Docker客户端连接到远程Docker守护程序。Docker客户端和守护程序在UNIX套接字或网络接口上使用REST API进行通信。另一个Docker客户端是Docker Compose,它使您可以处理由一组容器组成的应用程序。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W5f5MycJ-1619181766250)(https://docs.docker.com/engine/images/architecture.svg)]

Docker守护程序

Docker守护程序(dockerd)侦听Docker API请求并管理Docker对象,例如图像,容器,网络和卷。守护程序还可以与其他守护程序通信以管理Docker服务。

Docker客户端

Docker客户端(docker)是许多Docker用户与Docker交互的主要方式。当您使用诸如之类的命令时docker run,客户端会将这些命令发送到dockerd,以执行这些命令。该docker命令使用Docker API。Docker客户端可以与多个守护程序通信。

Docker注册表

Docker注册表存储Docker映像。Docker Hub是任何人都可以使用的公共注册表,并且默认情况下,Docker已配置为在Docker Hub上查找映像。您甚至可以运行自己的私人注册表。

使用docker pulldocker run命令时,将从配置的注册表中提取所需的图像。使用该docker push命令时,会将映像推送到已配置的注册表。

Docker对象

使用Docker时,您正在创建和使用映像,容器,网络,卷,插件和其他对象。本节是其中一些对象的简要概述。

二、Docker安装

1、安装

在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

1.1 准备工具

先安装yum工具命令

yum install -y yum-utils
  • 1

然后 添加docker的仓库 repo

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  • 1
  • 2
  • 3

1.2 安装docker引擎

yum install docker-ce docker-ce-cli containerd.io
  • 1

1.3 启动Docker服务

systemctl start docker
  • 1

1.4 测试docker

从Docker Hub网站上 拉取一个 hello-world镜像 然后运行

docker run hello-world
  • 1

三、镜像Image

镜像就类似于一个软件,我们运行就创建了一个容器。

基本命令格式:

docker image 命令      如:ls查看镜像
  • 1

3.1 基础命令

查看本地镜像列表

1、查看本地镜像

docker images

docker image ls

[root@localhost ~]# docker images

REPOSITORY                 TAG            IMAGE ID       CREATED         SIZE

nginx                      latest         08393e824c32   8 months ago    132MB
mysql                      5.6            1d3d3845393d   8 months ago    302MB
mysql                      latest         0d64f46acfd1   8 months ago    544MB
centos                     7              b5b4d78bc90c   11 months ago   203MB

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

解释:

REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2、拉取镜像

我们的镜像都可以存放到Docker Hub网站(gitee码云)上,这是一个开源的镜像库

如果从这个网站上 下载东西 就可以使用 pull 拉取

docker pull 

# 下载mysql
docker image pull mysql:5.7
  • 1
  • 2
  • 3
  • 4

如果没有添加版本tag 则下载默认的最新版本 mysql:latest

3、删除镜像

docker rm

如果 镜像被容器在使用,默认是不能删除的,可以通过 -f 强制删除

docker rmi hello-world
docker rmi hello-world
  • 1
  • 2

四、容器Container

4.1 基础命令

1、运行容器

在本地 如果有镜像 就可以运行该镜像 生成容器,如果镜像不存在 会去网上pull后在运行

docker run  image

--name  在启动的时候 给容器 起一个名字

--interactive , -i		交互  即使未连接
--tty , -t      终端
这两个一般都是一起用 -it 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
docker  run --name myhello  hello-world
  • 1

交互式启动容器

docker  run --name  mycentos  -it  centos:7 
[root@786f16e7d970 /]#  @后面是容器id
  • 1
  • 2

2、查看容器列表

docker ps  查看 所有活跃的容器

docker ps -a  查看所有容器 包括停止的
  • 1
  • 2
  • 3

3、从容器中提取出镜像

Create a new image from a container’s changes

如果我们给现有的容器做了修改,而且这个修改以后还要常用,我们就可以提前出镜像,作为一个新的版本

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

# 案例
docker  commit -a "刘某人" -m "看你不爽,修改一下"  d62332d7bf22  mycentos:7.1
  • 1
  • 2
  • 3
  • 4

查看本地镜像列表

[root@localhost jiyun]# docker images
REPOSITORY                 TAG            IMAGE ID       CREATED          SIZE
mycentos                   7.1            c415d57cbff4   15 seconds ago   227MB
<none>                     <none>         9924749400a6   13 hours ago     314MB

  • 1
  • 2
  • 3
  • 4
  • 5

4、镜像推送 仓库。

1、给镜像打包tag

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

# 案例

docker tag mycentos:7.1   xiaozhuanjia/mycentos:7.1
  • 1
  • 2
  • 3
  • 4
  • 5

2、推送

docker push [OPTIONS] NAME[:TAG]

# 案例
docker push  xiaozhuanjia/mycentos:7.1
  • 1
  • 2
  • 3
  • 4

5、启动常见服务容器

如果想要容器 长时间运行 作为服务,需要加-d 后台运行

-d执行的容器 不会直接开启交互

我们需要使用 docker exec 进入到容器

docker exec -it 1e592c76445b /bin/bash

5.1 启动redis

-p 端口号的映射 宿主机端口:容器端口

docker  run -itd   -p 6379:6379 redis   

# 还可以继续开 开多个
docker  run -itd   -p 6378:6379 redis
  • 1
  • 2
  • 3
  • 4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0h6vyNRS-1619181766254)(…/…/…/images/image-20210423155247819.png)]

5.2 开启mysql

和普通开发服务一样,但也有特定, 需要知道 账号 密码

docker run --name mysql56 -itd  -p 3305:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
  • 1

进入到mysql容器服务里

docker exec 进入到mysql容器

然后可以操作数据库,进行数据库的增删改查操作

6、Dockerfile使用

如果我们想从零开始构建镜像,例如我们把我们的django项目 或者vue项目 作为一个镜像供其他人使用

可以使用Dockerfile文件来 描述这个镜像的构建过程。

6.1 基础命令

FROM 定制的镜像都是基于 FROM 的镜像

RUN:用于执行后面跟着的命令行命令 在执行 docker build 会执行该命令

COPY: 拷贝复制文件

CMD : 在docker run的时候会 执行 这里的命令

6.2 给django项目写文件

FROM 3.6-alpine
COPY requirement.txt  .
RUN  pip3 install -r requirement.txt
COPY hellopro .
CMD ["python3","manage.py","runserver"]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

FROM 定制的镜像都是基于 FROM 的镜像

RUN:用于执行后面跟着的命令行命令 在执行 docker build 会执行该命令

COPY: 拷贝复制文件

CMD : 在docker run的时候会 执行 这里的命令

6.2 给django项目写文件

FROM 3.6-alpine
COPY requirement.txt  .
RUN  pip3 install -r requirement.txt
COPY hellopro .
CMD ["python3","manage.py","runserver"]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/817282
推荐阅读
相关标签
  

闽ICP备14008679号