docker基本安装及问题整理

docker基本安装

yum安装

  • 卸载老版本的Docker
    在CentOS中,老版本Docker名称是docker 或docker-engine ,而Docker CE的软件包名称是docker-ce 。因此,如已安装过老版本的Docker,需使用如下命令卸载。
sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

需要注意的是,执行该命令只会卸载Docker本身,而不会删除Docker存储的文件,例如镜像、容器、卷以及网络文件等。这些文件保存在/var/lib/docker 目录中,需要手动删除。

  • 国内源
    执行下面的命令添加 yum 软件源:
$ sudo yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

以上命令会添加稳定版本的 Docker CE yum 源。

  • 官方源
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

如果需要最新版本的 Docker CE 请使用以下命令:
$ sudo yum-config-manager --enable docker-ce-edge
$ sudo yum-config-manager --enable docker-ce-test

  • 安装Docker
  1. 执行以下命令,更新yum的包索引
    sudo yum makecache fast
  2. 执行如下命令即可安装最新版本的Docker CE
    sudo yum install docker-ce
    如果提示没有相应的版本安装或者无法安装,可以通过yum install docker方式
  3. 在生产环境中,可能需要指定想要安装的版本,此时可使用如下命令列出当前可用的Docker版本。
    yum list docker-ce.x86_64 --showduplicates | sort -r
  4. 这样,列出版本后,可使用如下命令,安装想要安装的Docker CE版本。
    sudo yum install docker-ce-
  5. 启动Docker
    sudo systemctl start docker
  6. 验证安装是否正确。这样,Docker将会下载测试镜像,并使用该镜像启动一个容器。
    sudo docker run hello-world
  • 启动 Docker CE
$ sudo systemctl enable docker
$ sudo systemctl start docker
  • 设置开机启动
    systemctl enable docker
    shutdown -r now 重新启动
    systemctl status docker 查看是否启动状态

实现http访问registry

Registry为了安全性考虑,默认是需要https证书支持的.
但是我们可以通过一个简单的办法解决:

#修改/etc/docker/daemon.json文件
#vi /etc/docker/daemon.json
{
    "insecure-registries": ["<ip>:5000"] 
}
#重启docker
#systemctl daemon-reload 
#systemctl restart docker

注::Registry的机器ip地址,在安装registry的节点和客户端需要访问私有Registry的节点都需要执行此步操作。

Docker iptables异常处理

异常提示信息:
Error response from daemon: Cannot restart container 925228b7844c: iptables failed: iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT --to-destination 172.17.0.25:80 ! -i docker0: iptables: No chain/target/match by that name.

重建docker0网络

pkill docker
ifconfig docker0 down
brctl delbr docker0
docker -d
service docker start 

如果找不到ifconfig命令,通过命令yum search ifconfig查找
在这里插入图片描述
发现ifconfig这个命令是在net-tools.x86_64这个包里,接下来安装这个包就行了,命令:yum install net-tools.x86_64

如果找不到brctl 命令,执行yum install bridge-utils

no route to host问题

  • 检查开放端口,不是root要加sudo
    firewall-cmd --list-ports

  • 开启端口
    firewall-cmd --zone=public --add-port=5044/tcp --permanent
    命令含义:
    –zone #作用域
    –add-port=80/tcp #添加端口,格式为:端口/通讯协议
    –permanent #永久生效,没有此参数重启后失效

  • 重启防火墙
    firewall-cmd --reload #重启firewall

  • 关闭防火墙命令:
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动

  • firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

  • 启动一个服务:systemctl start firewalld.service

  • 在开机时启用一个服务:systemctl enable firewalld.service

创建docker镜像尽量使用alpine(轻量级Linux发行版)

一个简单的使用alpine创建nginx镜像的例子

FROM alpine:latest

# install nginx
RUN apk --update add nginx \
&& mkdir -p /run/nginx

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值