DocKer下载和拉取镜像

Docker版本与官方安装方式

moby、docker-ce(社区版)与docker-ee(企业版)

最早时docker是⼀个开源项⽬,主要由docker公司维护。

2017年3⽉1⽇起,docker公司将原先的docker项⽬改名为moby,并创建了docker-ce和docker-ee。

三者关系:

moby是继承了原先的docker的项⽬,是社区维护的的开源项⽬,谁都可以在moby的基础打造⾃⼰的
容器产品
docker-ce是docker公司维护的开源项⽬,是⼀个基于moby项⽬的免费的容器产品
docker-ee是docker公司维护的闭源产品,是docker公司的商业产品

moby project由社区维护,docker-ce project是docker公司维护,docker-ee是闭源的docker公司维护。

CentOS–官⽅安装

Docker官⽹:https://www.docker.com/

中文网: https://docker.p2hp.com/

了解即可

如果是centos,上⾯的安装命令会在系统上添加yum源:/etc/yum.repos.d/docker-ce.repo
# wget https://download.docker.com/linux/centos/docker-ce.repo
# mv docker-ce.repo /etc/yum.repos.d
# yum install -y docker-ce

或者直接下载rpm安装:

# wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/do
cker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm
# yum localinstall docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm

国内源安装新版Docker

使⽤aliyun docker yum源安装新版docker

选择dockerCE

请添加图片描述

删除已安装的Docker

[root@docker-server ~]# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

配置阿里云Docker Yum源

阿里云镜像源地址:mirrors.aliyun.com

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start


查看docker版本

[root@docker_server ~]# docker -v
Docker version 26.1.4, build 5650f9b

安装指定版本

查看Docker版本:
# yum list docker-ce --showduplicates

示例:

[root@docker_server ~]# yum list docker-ce --showduplicates
已加载插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
可安装的软件包
                               docker-ce-stable
docker-ce.x86_64                                 17.12.1.ce-1.el7.centos                                  docker-ce-stable
docker-ce.x86_64                                 18.03.0.ce-1.el7.centos                                  docker-ce-stable
docker-ce.x86_64                                 18.03.1.ce-1.el7.centos                                  docker-ce-stable


想安装 18.03.1.ce-1.el7.centos

$ yum -y install docker-ce-18.03.0.ce-1.el7.centos 

安装较旧版本(⽐如Docker 17.03.2) :

需要指定完整的rpm包的包名,并且加上–setopt=obsoletes=0 禁⽌⾃动更新参数:

# yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
例如:
# yum install -y --setopt=obsoletes=0 docker-ce-19.03.2 docker-ce-selinux-1
9.03.2

安装Docker新版本:加上rpm包名的版本号部分或不加都可以:

[root@docker-server ~]# yum install -y docker-ce #默认安装的是最新版本

启动Docker服务:

#systemctl enable docker
#systemctl start docker

查看docker版本状态:

[root@docker-server ~]# docker -v
Docker version 20.10.21, build baeda1f
[root@docker_server ~]# docker version
Client: Docker Engine - Community
 Version:           26.1.4
 API version:       1.45
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:32:04 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.4
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.11
  Git commit:       de5c9cf
  Built:            Wed Jun  5 11:31:02 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.33
  GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

查看docker运行状态:

# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
...
报错1:
docker info的时候报如下错误
bridge-nf-call-iptables is disabled
解决1:
追加如下配置,然后重启系统
# vim /etc/sysctl.conf 
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1

问题2:
虚拟机ping百度也能ping通,但是需要等好⼏秒才出结果,关键是下载镜像⼀直报错如下
# docker pull daocloud.io/library/nginx
 Using default tag: latest
 Error response from daemon: Get https://daocloud.io/v2/: dial tcp: looku
p daocloud.io on 192.168.1.2:53: read udp 192.168.1.189:41335->192.168.
1.2:53: i/o timeout
解决2:
我的虚拟机⽤的⽹关和dns都是虚拟机⾃⼰的.1或者.2,把DNS改成8.8.8.8问题就解决了,ping百
度也秒出结果
# vim /etc/resolv.conf
 nameserver 8.8.8.8

简单测试

docker容器(nginx)

docker镜像(nginx)

docker服务

虚拟机

物理服务器

Docker官网镜像网站:https://hub.docker.com/

总是无法访问

运⾏⼀个容器
[root@192 ~]# docker run -it daocloud.io/library/ubuntu /bin/bash #运⾏容器
Unable to find image 'daocloud.io/library/ubuntu:latest' locally
latest: Pulling from library/ubuntu
5c939e3a4d10: Pull complete
c63719cdbe7a: Pull complete
19a861ea6baf: Pull complete
651c9d2d6c4f: Pull complete
Digest: sha256:bc025862c3e8ec4a8754ea4756e33da6c41cba38330d7e324abd25c8e0b
93300
Status: Downloaded newer image for daocloud.io/library/ubuntu:latest
如果⾃动进⼊下⾯的容器环境,说明•ubuntu镜像运⾏成功,Docker的安装也没有问题:可以操作
容器了
root@db8e84e2ea96:/#

国内镜像源

去查看如何使⽤aliyun的docker镜像库
去查看如何使⽤⽹易蜂巢的docker镜像库----作业,并且通过⽹易蜂巢源下载⼀个nginx的镜像---
docker pull 镜像仓库与镜像名字
https://www.daocloud.io/

Docker 加速器

使⽤ Docker 的时候,需要经常从官⽅获取镜像,但是由于显⽽易⻅的⽹络原因,拉取镜像的过程⾮常耗时,严重影响使⽤ Docker 的体验。因此 DaoCloud 推出了加速器⼯具解决这个难题,通过智能路由和缓存机制,极⼤提升了国内⽹络访问 Docker Hub 的速度。
Docker 加速器对 Docker 的版本有要求吗? 
需要 Docker 1.8 或更⾼版本才能使⽤。
Docker 加速器⽀持什么系统? 
Linux, MacOS 以及 Windows 平台。
Docker 加速器是否收费? 
提供永久免费的加速器服务,请放⼼使⽤。

国内⽐较好的镜像源:网易蜂巢、aliyun和daocloud

可信镜像中心

https://hub.atomgit.com

进⼊镜像市场:

请添加图片描述

随便搜索一个,搜mysql

请添加图片描述

选择合适的版本,以第一个为例

请添加图片描述

请添加图片描述

拉取镜像:

[root@docker_server ~]# docker pull hub.atomgit.com/amd64/mysql:5.7.43

查看镜像:

[root@docker_server ~]# docker images
REPOSITORY                    TAG       IMAGE ID       CREATED        SIZE
hub.atomgit.com/amd64/mysql   5.7.43    8a709252ac32   8 months ago   582MB

启动mysql实例:

[root@docker_server ~]#  docker run --name testmysql -e MYSQL_ROOT_PASSWORD=ChenFuguo@123 -d hub.atomgit.com/amd64/mysql:5.7.43

其中: 
      ChenFuguo@123是mysql密码
      -d 以后台模式运行 后面是镜像仓库名 : 标签名
      --name testmysql 是给这个新创建的 MySQL 容器设置的名称。通过指定容器名称,可以更方便地管理和访问这个容器。例如,可以使用 docker stop testmysql 或 docker start testmysql 来停止或启动这个容器

连接到mysql实例:

[root@docker_server ~]#  docker exec -it testmysql mysql -u root -p
输入密码即可连接

可使用exit; quit; 或者ctrl +D 退出连接

可选择不同的镜像:

[root@docker_server ~]# docker pull hub.atomgit.com/amd64/nginx:1.25.2-perl
1.25.2-perl: Pulling from amd64/nginx
579f0d7d93d7: Pull complete
274d80d3b84f: Pull complete
51aa40ee1ebc: Pull complete
b6fdae62d276: Pull complete
745c8321dca1: Pull complete
077c1ce9b937: Pull complete
9f88e68f420e: Pull complete
b58aacc8a5cd: Pull complete
Digest: sha256:615eb6b7237368628ba586460fdab74bccbd4610533f59717ef2cc7c25458efc
Status: Downloaded newer image for hub.atomgit.com/amd64/nginx:1.25.2-perl
hub.atomgit.com/amd64/nginx:1.25.2-perl

下载nginx的不同版本,如1.24

[root@docker_server ~]# docker pull hub.atomgit.com/amd64/nginx:1.24.0
1.24.0: Pulling from amd64/nginx
1a82ea2e025a: Pull complete
3ef6bc7c6b34: Pull complete
b8ea68ef5510: Pull complete
152901865926: Pull complete
b39f33faf2b2: Pull complete
cf865bd10e05: Pull complete
Digest: sha256:26d247f50cdb2dcb0e57198ee5c66de55693d63e0f6af9142332888de54dd370
Status: Downloaded newer image for hub.atomgit.com/amd64/nginx:1.24.0
hub.atomgit.com/amd64/nginx:1.24.0

[root@docker_server ~]# docker images
REPOSITORY                    TAG           IMAGE ID       CREATED        SIZE
hub.atomgit.com/amd64/nginx   1.25.2-perl   a707aa62d35c   8 months ago   236MB
hub.atomgit.com/amd64/nginx   1.24.0        f9d80bfebb18   8 months ago   142MB
hub.atomgit.com/amd64/mysql   5.7.43        8a709252ac32   8 months ago   582MB

启动拉取下来的nginx

docker run --name <容器名称> -d -p <宿主机端口>:<容器端口> <镜像名称>:<标签>
docker run --name testnginx -d -p 80:80 hub.atomgit.com/amd64/nginx:1.25.2-perl

在这里插入图片描述

进入该容器:

假设你有一个名为 testnginx 的容器,你可以使用以下命令进入该容器:

$ docker exec -it testnginx /bin/bash

$ ls /usr/share/nginx/html/
50x.html  index.html

如果该容器不支持 /bin/bash,你可以尝试使用 /bin/sh

docker exec -it testnginx /bin/sh

退出容器

在容器内部,你可以像在普通 Linux 环境中一样操作。要退出容器的 shell 会话,只需输入 exit 命令:

exit

这将会结束你在容器中的会话并返回到宿主机的命令行提示符。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值