部署参考文档
https://docs.docker.com/engine/install/centos/
https://www.jb51.net/article/255132.htm
使用建议参考文档
https://zhuanlan.zhihu.com/p/488447990
配置镜像加速请参考
https://blog.csdn.net/weixin_41538642/article/details/123482783
- docker搭建(着急搭docker的直接点这里)
- docker更新
- docker命令小合集
docker概念
docker是啥,我搜了一顿上来放的全是图讲一堆术语的东西根本看不懂,公司给我这点b钱根本不值当我费那么多脑,就干活急着要搭一套能搭出来就行。
我举个例子,方便知道啥是docker:
我现在要在服务器上起一个nginx的web,我需要经过的步骤:
1、先安装gcc+、gcc啥make、openssl等等等…各类包
2、关selinux、firewall啥的
3、再下一个nginx到服务器里,或者rpm下,反正装上make
4、编译要用的模块,各种改conf的配置listen端口。
5、正常访问
用docker的话,我只需要抽时间搞一个docker的ng容器镜像,或者再懒一点直接用docker官方容器库的现成ng镜像。
1、配个yum源yum一下docker三件套
2、拉个自己做好的或者库里现成的ng容器镜像,一句话包含容器映射到宿主机的监听端口、本宿主机的和容器互通目录方便塞html进去、-d后台运行,当场容器跑起来。
擦,直接拉镜像带配置一波跑起来!桀桀桀!
3、访问服务
好东西就是好东西,删环境也方便,直接用docker命令干碎这个ng容器就完事。
手动装的ng要清半天环境。
我画俩图方便理解啊,如果手动安装ng就是下面这样。
主机上因为ng装了一堆东西,下ng包然后装gcc啥的各种环境,废了半天劲,然后映射出去个80,服务能用了。
擦这台主机环境被糟蹋成这样,这要是我自己电脑,我直接当场嗝屁过去。
下面这个是docker
只要装了docker环境,配好容器镜像的仓库(如果你比较勤快,也可以做自己的私有容器镜像仓库),要啥直接pull拉镜像进来,一句话服务跑起来,我超多方便,也不会染了主机的环境。想要啥就拉啥,玩腻了直接删。
(要是有minecraft容器镜像直接拉进来,嫖客户机当游戏服务器,给群友爽一爽 ,客户来了再把游戏容器删掉,太爽了
b话说完了,下面说一下怎么搭,我是按照docker的官方文档来搭的。
搭建docker
关selinux
setenforce 0 #临时关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #永久关闭
firewall也干掉
systemctl disable firewalld
yum搭建
部署参考文档
官方文档
https://docs.docker.com/engine/install/centos
中文版
https://www.jb51.net/article/255132.htm
我看有一篇提到需要开启内核流量转发可以参考一下(我这里没开)
https://blog.csdn.net/weixin_45507468/article/details/127354763
先清除一下本机之前的docker环境,要是没有的话就不用清。
注:centos8搭建前需要执行yum erase podman buildah
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
先安装yum工具集yum-utils,再配一下docker安装源(这里我用的阿里的)
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker套装
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
这里搬参考文档里的:
docker-ce—docker社区版
docker-ce-cli—操作docker服务器的命令行程序
containerd.io—docker容器化的运行环境
docker-compose-plugin—可通过yml批量配置创建管理多个容器组(这个玩意实际用起来有点复杂,这里先不讲)
想装其他版本?康康这段 ↓
也可以执行下面这句,看下都有哪些版本
yum list docker-ce --showduplicates | sort -r
然后依据自己的需求,指定yum的docker版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
启动docker服务
systemctl start docker
按照官方文档里让run个hello world测试一下
docker run hello-world
可以看到这边拉取hello world容器镜像成功,且在该镜像run的应用执行打印一堆英格力士后结束。
再用docker ps -a康康当前本机docker内都有哪些容器
yum搭建到此为止
rpm包搭建
先下你系统对应的包,可以去下面下
https://download.docker.com/
下好传到盘里,执行
sudo yum install 你包的路径/下好的包名.rpm
然后,等安装完启动docker
sudo systemctl start docker
然后还是sudo docker run hello world
docker更新
官方文档里是这么写的…
就是下载最新的rpm包 然后yum -y upgrade 包名.rpm
更新就OK
卸载docker
remove已安装的docker工具
sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
需要注意,官方文档中提到:
主机上的映像、容器、卷或自定义配置文件不会自动删除。故须手动删除所有映像、容器、卷之类的残留文件。
建议在用docker的时候把卷啊啥的都丢在这俩目录下面,删环境方便
于是这里再删一下残留文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
docker命令小合集
docker ps -a
-----------查询本机所有容器,包括并未运行的
docker ps
----------------查询本机正在运行的容器 (笑死根本没有_(:з」∠)_)
container id---------容器id
docker search
----------查询docker仓库可拉取 (嫖) 的容器镜像有哪些
(我超还真有mc的镜像~桀桀桀)
建议到官网的镜像库搜需要的镜像,镜像会有对应的镜像使用说明,然后再到系统里pull
https://hub.docker.com/
比如我这个mincraft-server
docker pull 镜像名
---------拉取镜像到本地
docker image xxxx
---------------对本机镜像操作(这里我只演示都有哪些镜像,具体的命令功能自己去玩一玩)
docker image ls
----------------镜像列表
docker images
也可以
可以看到
REPOSITORY-----储存库
TAG------------------标签/版本
IMAGE ID-----------镜像ID
CREATED----------镜像创建时间(作者传镜像到docker库的时间)
SIZE------------------镜像大小(窝巢mc服务端这么大的的吗)