Doceker服务器部署和应用
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
保险起见,重启防火墙和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上处于活动状态并正在运行确认