为什么选择Docker?
不同的平台,不同应用的依赖项错综复杂,通过docker能够提供开箱即用的体验,并且能够快捷的进行维护,迁移成本低,易用性高。
CentOS 8 下的Docker 安装
笔者原用的是CentOS 6的发行版本,安装docker时遇到诸多麻烦,升级内核又较为繁琐,故直接备份数据换成了较新的发行版本。
可以使用以下命令自动化安装Docker
1 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
或者使用国内
1 | curl -sSL https://get.daocloud.io/docker | sh |
拉取你的第一个镜像
使用docker pull
来拉取需要的镜像
1 | docker pull hello-world |
在docker hub中,可以快速浏览并检索所需的docker,例如nginx等,只需要一行命令就能开箱即用。
拉取成功后来验证是否成功
docker image ps
拉取本地的镜像列表
如果能够看到刚刚的hello-world说明你的docker已经安装好,并且能够使用啦~
运行容器
1 | docker run [参数] 镜像名 [命令] [ARG...] |
可选参数
-a stdin
: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;-d
: 后台运行容器,并返回容器ID;-i
: 以交互模式运行容器,通常与 -t 同时使用;-P
: 随机端口映射,容器内部端口随机映射到主机的端口-p
: 指定端口映射,格式为:主机(宿主)端口:容器端口- `-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-name="nginx-lb"
: 为容器指定一个名称;--dns 8.8.8.8
: 指定容器使用的DNS服务器,默认和宿主一致;--dns-search example.com
: 指定容器DNS搜索域名,默认和宿主一致;-h "mars"
: 指定容器的hostname;-e username="ritchie":
设置环境变量;--env-file=[]
: 从指定文件读入环境变量;--cpuset="0-2" or --cpuset="0,1,2"
: 绑定容器到指定CPU运行;-m
:设置容器使用内存最大值;--net="bridge"
: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;--link=[]
: 添加链接到另一个容器;--expose=[]
: 开放一个端口或一组端口;--volume , -v
: 绑定一个卷
一起来搭建一个我的世界服务器
拉取image
1 | docker pull itzg/minecraft-bedrock-server |
pull的时候可以指定版本,默认为
:latest
本文示例用的是基岩版服务器,另寻java版请点此(链接)[https://hub.docker.com/r/itzg/minecraft-server]
创建并运行一个新的容器
1 | docker run --name mc -d -it -e EULA=TRUE -p 19132:19132/udp -p 19132:19132 itzg/minecraft-bedrock-server |
稍等片刻查看运行日志,如果显示运行成功,就可以通过游戏客户端访问服务器了
1 | docker logs mc |
未完待续…