Doceker服务器部署和应用

由 夏日冰菓 发布

Doceker服务器部署和应用

Docker

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


自动安装脚本

安装docker的教程非常多,最方便的就是使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

手动安装

卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项,避免冲突

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装 Docker Engine-Community

设置仓库

安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

使用以下命令来设置稳定的仓库(清华大学源)

sudo yum-config-manager \
    --add-repo \
    https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

安装 Docker Engine-Community

 sudo yum install docker-ce docker-ce-cli containerd.io

如果提示您接受 GPG 密钥,请选是。

对于有些开发板,机顶盒,或者路由器无法使用以上安装方式,可以使用命令列出并排序你默认存储库中可用的版本。

yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
安装某一版本,使用方式是该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

启动Docker

systemctl start docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

sudo docker run hello-world

卸载 docker

删除安装包:

yum remove docker-ce

删除镜像、容器、配置文件等内容:

rm -rf /var/lib/docker

更多安装资料

https://www.runoob.com/docker/centos-docker-install.html

额外补充

让docker服务自启动

systemctl enable docker.service

开机时自动引导容器命令

docker update --restart=always (容器名) 

取消开机自动引导容器命令

docker update –restart=no xxx 
docker update –restart=no (容器名)

查看运行的容器

docker ps

查看全部容器

docker ps -a

查看镜像

docker images

查看容器资源监控

docker stats (容器名)

开始容器

docker start (容器名)

停止容器

docker stop (容器名)

容器命名

docker rename (原容器名) (新容器名)

Docker备份与迁移 (以nginx为例)

1 容器保存为镜像

我们可以通过以下命令将容器保存为镜像

docker commit nginx mynginx

nginx是容器名称

mynginx是新的镜像名称

此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器

2 镜像备份

docker save -o mynginx.tar mynginx

-o 输出到的文件

执行后,运行ls命令即可看到打成的tar包

3 镜像恢复与迁移

首先我们先删除掉mynginx镜像

然后执行此命令进行恢复

docker load -i mynginx.tar

-i 输入的文件

执行后再次查看镜像,可以看到镜像已经恢复

4 安装linux容器

docker run -it -p 2221:22 -p 8880:80 镜像名 /bin/bash

来自 https://www.cnblogs.com/luyanjie/p/9656863.html


您可以通过修改daemon配置文件 /etc/docker/daemon.json 来使用加速器

使用阿里源

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

或者daocloud源

{
 "registry-mirrors": ["http://f1361db2.m.daocloud.io"]
}
{
 "registry-mirrors": [
   "http://hub-mirror.c.163.com"   
   "http://docker.mirrors.ustc.edu.cn",
   "http://registry.docker-cn.com",   
  ]
}

使用全家桶源

{
 "registry-mirrors": ["http://hub-mirror.c.163.com","http://f1361db2.m.daocloud.io","https://q052ohga.mirror.aliyuncs.com","https://3laho3y3.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn"]
}

防火墙问题

Centos的firewall防火墙和docker有冲突。关闭防火墙的时候docker容器有时候运行不起来

最后的解决方式是把docker的网络接口设置为白名单

firewall-cmd --permanent --zone=trusted --add-interface=docker0

来自 https://unix.stackexchange.com/questions/199966/how-to-configure-centos-7-firewalld-to-allow-docker-containers-free-access-to-th

保险起见,重启防火墙和docker服务

firewall-cmd --reload
systemctl restart docker

有关于防火墙的文章看一下链接

https://www.cnblogs.com/leoxuan/p/8275343.html

配置文件路径为:/var/lib/docker/containers/容器ID


Centos8 安装Docker的方法不一样,按照以下文章按照

https://phoenixnap.com/kb/how-to-install-docker-on-centos-8

使用DNF添加并启用官方Docker CE存储库。在终端窗口中键入以下命令:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

系统通知您已经成功检索了存储库。

终端确认Docker已添加到CentOS 8。

sudo dnf repolist -v

屏幕信息提供所有相关的详细信息,验证是否添加了正确的存储库。

要列出所有可用的docker-ce软件包,请输入:

dnf list docker-ce --showduplicates | sort -r

不幸的是,CentOS 8不支持container.id软件包的特定版本。这意味着仅某些版本的docker-ce可用于安装。
可在系统上安装的docker-ce版本列表
有两种方法可以解决此问题并在CentOS 8上安装Docker。
在CentOS 8上安装Docker CE
选项1:跳过具有损坏损坏的程序包
一个有效的解决方案是使您的CentOS 8系统使用以下--nobest命令安装最符合条件的版本:

sudo dnf install docker-ce --nobest

安装将跳过最新的候选版本,并使用所需的containerd.io软件包安装最合适的版本。
使用nobest命令安装docker ce
输入y确认后,系统将继续安装Docker CE 18.06.3.ce-3.el7。
安装跳过了最新版本
如果仔细观察,您会看到安装跳过了不符合条件的最新版本的docker-ce。
选项2:手动安装containerd.io
在CenOS 8上安装Docker的另一个选择是预先手动安装containerd.io软件包。该解决方法可让您安装最新的docker-ce版本。
使用以下命令:

sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm

使用y确认安装。您已经成功安装了最新版本的containerd.io。

成功安装了最新版本的containerd.io

现在,我们可以使用一个简单的命令来安装最新版本的docker-ce:

sudo dnf install docker-ce -y

以下输出确认docker-ce-3:19.03.5-3.el7.x86_64已成功安装。
安装了最新版本的Docker CE
启动并测试Docker
启用Docker
通过以下方式启用并启动Docker服务:

sudo systemctl enable --now docker

输出确认我们已经创建了符号链接。
在CentOS 8上启用Docker
接下来,使用以下简短命令确认Docker是否处于活动状态并正在运行:

systemctl status docker

我们看到了时间戳,并确认Docker是活动的。
Docker在CentOS上处于活动状态并正在运行确认


暂无评论

发表评论