Sep 21, 2020教程720 words in 5 min


Linux学习笔记#2:docker安装和使用

为什么选择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

未完待续…

  • Author:

    Birchs

  • Copyright:

    Attribution-NonCommercial-NoDerivatives 4.0 International(CC BY-NC-ND 4.0)

  • Updated:

    December 14, 2020

Buy me snacks 🍩.