Docker:Ubuntu 18.04 LTS上的安装和基本使用
Docker是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以在任何地方以轻量级容器的方式构建,打包和运行应用程序。 Docker在软件容器内自动部署应用程序。 Solomon Hykes作为企业PaaS(平台即服务)dotCloud的内部项目启动了Docker开发,但该软件现在由Docker社区和Docker Inc.维护。有关Docker的更多信息,请参见此处的文档https: //docs.docker.com/ 。
Docker需要64位体系结构进行安装,而Linux Kernel必须是3.10或更高版本。 我将在这里使用内核版本为4.15.0的Ubuntu 18.04 LTS(仿生海狸)。
关于Docker的一些事情
这里是你应该知道的码头世界的基本术语。
Docker图像
Docker镜像是Docker容器的基本模板。 图像通常包含易于安装的操作系统和应用程序。 Docker镜像用于运行容器,您可以在Docker Hub https://hub.docker.com/上找到许多具有各种操作系统和软件的镜像。
码头容器
Docker Container是一个可以读写Docker镜像之上运行的镜像。 Docker使用union-file-system作为容器的后端; 在容器中进行的任何更改都将保存在基础图像上方的新图层中。 容器是我们安装应用程序的层。 每个容器都在主机中独立运行,因此提供了一个安全的应用程序平台。
Docker注册表
Docker注册表是Docker镜像的存储库。 它提供公共和私人存储库。 公共Docker注册表被称为Docker Hub。 在这里,我们可以推拉我们自己的图像。
在Ubuntu 18.04上安装Docker
在本节中,您将被引导来安装docker。 在安装软件之前,请检查内核版本和操作系统体系结构。 下一个命令必须以root用户身份运行。 运行这个命令在你的Ubuntu系统上成为root。
sudo su
然后运行uname -a来检查当前运行的Linux内核的版本。
uname -a
你可以看到我正在使用带有64Bit内核(x86_64)的内核版本4.15.0。
要检查Ubuntu版本,请运行:
cat /etc/lsb-release
该命令显示Ubuntu版本是18.04。
建议在安装新软件之前更新Ubuntu。 运行以下命令从Ubuntu存储库中获取最新的更新并安装它们。
sudo apt-get update
sudo apt-get upgrade
现在我们准备将Docker安装到服务器上。
要安装Docker,我们可以使用'Ubuntu Repository'中的软件包或使用'Docker Repository'中的软件包。
从Ubuntu存储库安装Docker
如果您想从Ubuntu存储库安装docker版本,则可以运行下面的apt命令。
sudo apt install docker.io
等到安装完成后,您可以启动Docker并使用systemctl命令将其添加到引导时间:
systemctl start docker
systemctl enable docker
您可能还想检查码头版本:
docker --version
你将得到从Ubuntu Repository安装的docker 17.12。
从Docker存储库安装Docker
在从Docker存储库安装docker-ce之前,使用apt命令安装一些依赖项,如下所示。
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
安装完成后,添加docker密钥和docker'nightly'存储库。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic nightly" > /etc/apt/sources.list.d/docker-nightly.list
并更新存储库。
sudo apt update
现在docker仓库已经添加到系统中。
使用apt-cache命令检查docker仓库提供的所有docker软件包。
sudo apt search docker-ce
sudo apt-cache policy docker-ce
你会看到不同的码头版本如下。
使用下面的apt命令安装它。
sudo apt install docker-ce
安装完成后,启动Docker服务并使其每次在系统启动时启动。
systemctl start docker
systemctl enable docker
现在检查系统上安装的码头版本。
docker --version
你将得到系统上安装的docker 18.x。 现在您可以通过从Docker Registry下载Docker Image来开始制作容器。
将Docker作为非root用户运行
为了将docker作为普通/非root用户运行,我们需要添加一个新的系统用户。 我们将添加名为'hakase'的新用户,然后将其添加到'docker'组中。
添加'hakase'用户。
useradd -m -s /bin/bash hakase
passwd hakase
为'码头'组添加'hakase'用途。
usermod -aG docker hakase
现在以“hakase”用户身份登录并运行docker命令。
su - hakase
docker run hello-world
你会从Docker那里得到你好世界。
Docker的基本用法
在本节中,我将向您展示docker命令的常用选项。 例如,如何下载Docker镜像,构建容器以及如何访问容器。
要创建一个新的容器,您应该首先选择一个基本映像与操作系统,例如Ubuntu或Centos或其他。 您可以使用docker搜索命令搜索基本映像:
docker search ubuntu
这个命令会显示所有的Ubuntu镜像。 你可以尝试自己的码头搜索centos等。
现在是时候将基本映像下载到我们的服务器上,请使用以下命令:
docker pull ubuntu
docker pull image-name命令将从docker registry / DockerHub下载映像到您的服务器。
现在您可以使用以下命令查看所有下载的图像:
docker images
Ubuntu镜像从DockerHub / Docker Registry下载。 下一步是从该映像创建一个容器。
要创建容器,可以使用docker create或docker run。
docker create ubuntu:18.04
码头创建命令将创建一个新的容器,但不启动它。 所以现在你可以使用运行命令:
docker run -i -t ubuntu:18.04 /bin/bash
这个命令将创建并运行一个基于Ubuntu 18.04映像的容器,并在容器中运行一个命令/ bin / bash,运行该命令后您将自动进入容器。
当您使用命令出口离开容器时,容器将停止。 如果您希望有一个在后台运行的容器,则只需在命令中添加-d选项。
docker run -i -t -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
注意:
/ bin / sh -c“while true; do echo hello world; sleep 1; done”这是bash脚本永远回显“hello word”。
现在,您可以使用以下命令看到在后台运行的容器:
docker ps
或者如果要查看该bash命令的日志结果,则可以使用以下命令:
docker logs NAMES/ContainerID
如何访问在后台模式下运行的容器的外壳?
该命令会将您连接到容器的外壳:
docker exec -i -t NAMES/ContainerID /bin/bash
输入正在运行的Docker容器。
您可以看到主机名和容器ID相同,这意味着您位于容器外壳的内部。 当你在那个shell上键入`exit`时,你将离开那个shell,但容器仍在运行。
您将经常使用的另一个命令是:
docker stop NAME/ContainerID
这会在不删除容器的情况下停止容器,因此您可以使用以下命令重新启动容器:
docker start NAME/ContainerID
如果您想要移除容器,请先将其停止,然后使用以下命令将其移除:
docker rm NAME/ContainerID
这只是关于Ubuntu上Docker的安装和基本用法的简短介绍,您可以在这里找到详细的Docker文档页面。
在此Howtoforge教程系列中提供了有关Docker的深入介绍: https ://www.youcl.com/tutorial/how-to-use-docker-introduction/
结论
Docker是一个开源的容器虚拟化平台,可帮助开发人员部署其应用程序和系统管理员,以在安全的虚拟容器环境中管理应用程序。 Docker运行在Intel / AMD 64位架构上,内核应该是更高的3.10版本。 使用Docker,您可以在容器中构建和运行应用程序,然后将容器移动到运行Docker的其他机器,而不用担心。