Docker 中国官方镜像加速

Docker 中国官方镜像加速

 

Docker的安装配置及使用详解

基本概念

Docker 包括三个基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

先理解了这三个概念,就理解了 Docker 的整个生命周期。

1、docker安装与启动

 

复制代码

 1 yum install -y epel-release
 2 yum install docker-io # 安装docker
 3 # 配置文件 /etc/sysconfig/docker
 4 
 5 chkconfig docker on  # 加入开机启动
 6 service docker start # 启动docker服务
 7 
 8 # 基本信息查看
 9 docker version # 查看docker的版本号,包括客户端、服务端、依赖的Go等
10 docker info # 查看系统(docker)层面信息,包括管理的images, containers数等
11 docker pull centos 下载
12 docker images [ centos ] 查看
13 docker run -i -t centos /bin/bash

复制代码

 

2、镜像的获取与容器的使用

 

复制代码

 1 # 搜索镜像
 2 docker search <image> # 在docker index中搜索image
 3 # 下载镜像
 4 docker pull <image>  # 从docker registry server 中下拉image
 5 # 查看镜像 
 6     docker images: # 列出images
 7     docker images -a # 列出所有的images(包含历史)
 8     docker rmi  <image ID>: # 删除一个或多个image
 9 
10 # 使用镜像创建容器
11     docker run -i -t sauloal/ubuntu14.04
12     docker run -i -t sauloal/ubuntu14.04 /bin/bash # 创建一个容器,让其中运行
13     bash 应用,退出后容器关闭
14 # 查看容器
15     docker ps :列出当前所有正在运行的container
16     docker ps -l :列出最近一次启动的container
17     docker ps -a :列出所有的container(包含历史,即运行过的container)
18     docker ps -q :列出最近一次运行的container ID
19 # 再次启动容器
20     docker start/stop/restart <container> #:开启/停止/重启container
21     docker start [container_id] #:再次运行某个container (包括历史container)
22     docker attach [container_id] #:连接一个正在运行的container实例(即实例须   
23              为start状态,可以多个窗口同时attach 一个container实例)
24     docker start -i <container> #:启动一个container并进入交互模式(相当于先
25          start,在attach)
26     docker run -i -t <image> /bin/bash #:使用image创建container并进入交互模
27              式, login shell是/bin/bash
28     docker run -i -t -p <host_port:contain_port> #:映射 HOST 端口到容器,方便
29           外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到
30           一个动态端口。
31     #注:使用start是启动已经创建过得container,使用run则通过image开启一个新的
32           container。
33 
34 # 删除容器
35     docker rm <container...> #:删除一个或多个container
36     docker rm `docker ps -a -q` #:删除所有的container
37     docker ps -a -q | xargs docker rm #:同上, 删除所有的container

复制代码

 

3.进入容器 - nsenter 命令

使用 attach 命令有时候并不方便。当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。 
nsenter安装 
nsenter 工具在 util-linux 包2.23版本后包含。 如果系统中 util-linux 包没有该命令,可以按照下面的方法从源码安装。

 

1 cd /usr/src ; wget https://www.kernel.org/pub/linux/utils/util-linux/v2.28/util-linux-2.28.tar.gz
2 
3 ./configure --without-ncurses
4 
5 make nsenter && sudo cp nsenter /usr/local/bin

nsenter使用 
   nsenter 可以访问另一个进程的名字空间。nsenter 要正常工作需要有 root 权限。 
   为了连接到容器,你还需要找到容器的第一个进程的 PID,可以通过下面的命令获取。

PID=$(docker inspect --format "{{ .State.Pid }}" <container>)

   通过这个 PID,就可以连接到这个容器:

nsenter --target $PID --mount --uts --ipc --net --pid

   更简单的,建议下载 .bashrc_docker,并将内容放到 .bashrc 中。

wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc

   这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;而 
   docker-enter 可以进入容器或直接在容器内执行命令。

echo $(docker-pid <container>)
docker-enter <container> ls
docker-enter <container> bash

3、持久化容器与镜像

 

3.1 通过容器生成新的镜像

 

运行中的镜像称为容器。你可以修改容器(比如删除一个文件),但这些修改不会影响到镜像。不过,你使用docker commit 命令可以把一个正在运行的容器变成一个新的镜像。

    docker commit <container> [repo:tag] # 将一个container固化为一个新的image,后面的repo:tag可选。

3.2 持久化容器

export命令用于持久化容器

    docker export <CONTAINER ID> > /tmp/export.tar

 

3.3 持久化镜像

Save命令用于持久化镜像

        docker save 镜像ID > /tmp/save.tar

 

3.4 导入持久化container

删除container 2161509ff65e

        docker rm 2161509ff65e

导入export.tar文件

cat /tmp/export.tar | docker import - export:latest

3.5 导入持久化image

删除image daa11948e23d

docker rmi daa11948e23d

导入save.tar文件

docker load < /tmp/save.tar

对image打tag

docker tag daa11948e23d load:tag

3.6 export-import与save-load的区别

导出后再导入(export-import)的镜像会丢失所有的历史,而保存后再加载(save-load)的镜像没有丢失历史和层(layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚。(可以执行docker tag 来回滚之前的层)。

3.7 一些其它命令

复制代码

1 docker logs $CONTAINER_ID #查看docker实例运行日志,确保正常运行
2     docker inspect $CONTAINER_ID #docker inspect <image|container> 查看image或container的底层信息
3     docker build <path> 寻找path路径下名为的Dockerfile的配置文件,使用此配置生成新的image
4     docker build -t repo[:tag] 同上,可以指定repo和可选的tag
5     docker build - < <dockerfile> 使用指定的dockerfile配置文件,docker以stdin方式获取内容,使用此配置生成新的image
6     docker port <container> <container port> 查看本地哪个端口映射到container的指定端口,其实用docker ps 也可以看到

复制代码

 

一些使用技巧

docker文件存放目录

Docker实际上把所有东西都放到/var/lib/docker路径下了。

 1 [root@localhost docker]# ls -F

2 containers/ devicemapper/ execdriver/ graph/ init/ linkgraph.db repositories-devicemapper volumes/ 

containers目录当然就是存放容器(container)了,graph目录存放镜像,文件层(file system layer)存放在graph/imageid/layer路径下,这样我们就可以看看文件层里到底有哪些东西,利用这种层级结构可以清楚的看到文件层是如何一层一层叠加起来的。

 

 

一张图总结 Docker 的命令

 

 

参考:https://www.docker-cn.com/registry-mirror

通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户现在将会享受到更快的下载速度和更强的稳定性,从而能够更敏捷地开发和交付 Docker 化应用。

Docker 中国官方镜像加速可通过 registry.docker-cn.com 访问。该镜像库只包含流行的公有镜像。私有镜像仍需要从美国镜像库中拉取。

您可以使用以下命令直接从该镜像加速地址进行拉取:

$ docker pull registry.docker-cn.com/myname/myrepo:mytag

例如:

$ docker pull registry.docker-cn.com/library/ubuntu:16.04

: 除非您修改了 Docker 守护进程的 `--registry-mirror` 参数 (见下文), 否则您将需要完整地指定官方镜像的名称。例如,library/ubuntu、library/redis、library/nginx。

使用 --registry-mirror 配置 Docker 守护进程

您可以配置 Docker 守护进程默认使用 Docker 官方镜像加速。这样您可以默认通过官方镜像加速拉取镜像,而无需在每次拉取时指定 registry.docker-cn.com。

您可以在 Docker 守护进程启动时传入 --registry-mirror 参数:

$ docker --registry-mirror=https://registry.docker-cn.com daemon

为了永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

修改保存后重启 Docker 以使配置生效。        

: 您也可以使用适用于 Mac 的 Docker 和适用于 Windows 的 Docker 来进行设置。

              

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker镜像加速是指通过配置镜像加速器来加快从Docker Hub或其他仓库拉取镜像的速度。通过使用国内的镜像加速器,可以避免由于网络延迟或墙的限制导致的下载速度慢的问题。 在国内,有多个镜像加速器可供选择。例如,Docker官方提供了中国加速器https://registry.***并在拉取镜像时自动切换到可用的镜像加速器。一些云服务商也提供了Docker镜像加速服务,可以根据你使用的云平台选择对应的镜像加速器服务。另外,一些大型互联网企业也提供了镜像加速器服务,如科大镜像、网易、阿里云、七牛云等。 配置镜像加速器的方法是将加速器地址添加到Docker的配置文件中。在配置文件中添加的加速器地址可以是官方提供的地址,也可以是云服务商或其他提供镜像加速器服务的地址。配置完成后,当从镜像仓库拉取镜像时,Docker会自动使用配置的加速器地址来提高下载速度。 总结起来,Docker镜像加速是通过配置镜像加速器来加快从Docker Hub或其他仓库拉取镜像的速度。国内有多个镜像加速器可供选择,包括Docker官方提供的加速器、云服务商提供的加速器以及一些大型互联网企业提供的加速器。配置镜像加速器的方法是将加速器地址添加到Docker的配置文件中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Docker教程】Docker镜像加速](https://blog.csdn.net/m0_66345324/article/details/124920984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值