一、什么是Docker?
Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源。
Docker属于Linux容器的一种封装,提供简单易用的容器使用接口。
Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了Docker,就不用担心环境问题。
总体来说,Docker的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
二、Docker的概念
Docker是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。使用docker轻松部署应用程序。
集装箱化的优点:
- 灵活:即使是复杂的应用程序也可封装。
- 轻量级:容器利用并共享主机内核。
- 便携式:您可以在本地构建,部署到云上并在任何地方运行。
- 可扩展性:您可以增加和自动分发容器副本。
- 可堆叠:您可以垂直堆叠服务并及时并及时堆叠服务。
三、images和容器
通过运行images启动容器,一个images是一个可执行的包,其中包括运行应用程序所需要的所有内容-代码,运行时,库、环境变量和配置文件。
容器时images运行时示例-当被执行时(即,images状态,或者用户进程)在内存中,可以使用命令查看正在运行容器的列表docker ps,就像在Linux中一样。
四、安装Docker
Ubuntu安装Docker
一、安装docker 方式一
apt install docker.io
二、安装docker方式二
- 卸载旧版本docker
- 全新安装时,无需执行该步骤
apt-get remove docker docker-engine docker.io
- 1.更新apt包索引
apt-get update
- 2.安装以下包以使apt可以通过HTTPS使用存储库(repository)
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
- 3.添加Docker的官方GPG密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 3.1添加仓库
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
- 4.再更新apt包索引
apt-get update
- 5.安装最新版本的Docker CE
apt-get -y install docker-ce
- 6.查看安装好的Docker
docker version
Centos安装Docker
- 首先清除非官方的Docker软件包
yum -y remove docker docker-common container-selinux
- 安装 yum-utils工具包
yum install -y yum-utils
- 配置阿里云Docker官方的安装源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 配置完毕后更新 系统yum安装源
yum update -y
- 安装最新版本的docker-ce
yum -y install docker-ce
- 安装完成后查看docker版本
docker version
Client: Docker Engine - Community
Version: 19.03.11
API version: 1.40
Go version: go1.13.10
Git commit: 42e35e61f3
Built: Mon Jun 1 09:13:48 2020
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- 如果提示你 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
解决方案
systemctl enable docker # 添加开机启动
systemctl daemon-reload # xxx
systemctl restart docker.service # 重启Docker服务
# 再次输入 docker version
docker version
Client: Docker Engine - Community
Version: 19.03.11
API version: 1.40
Go version: go1.13.10
Git commit: 42e35e61f3
Built: Mon Jun 1 09:13:48 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.11
API version: 1.40 (minimum version 1.12)
Go version: go1.13.10
Git commit: 42e35e61f3
Built: Mon Jun 1 09:12:26 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
# 成功!
配置Docker镜像加速器
- 专属镜像加速器 来自阿里云的容器镜像加速服务
- 免费获取专属id 详情请见底部
https://4670ldli.mirror.aliyuncs.com
- 7.修改daemon配置文件 /etc/docker/daemon.json来使用加速器 第一次修改没有这个文件 那么使用以下命令创建并写入
先输入 tee /etc/docker/daemon.json <<-'EOF' 回车
从这
{
"registry-mirrors": ["https://4670ldli.mirror.aliyuncs.com"]
}
EOF
复制到这里
- 8.重启docker
systemctl restart docker
- 9.输入以下查看加速的镜像源
docker info
- 10.安装tomcat 过程缓慢看网速 千万不要中途停止
docker pull tomcat
- 11.查看docker仓库 看看有没有tomcat
docker images
- 11.运行
hello-world
docker run hello-world
输出 Hello from Docker! 即为安装成功!
- 12.运行tomcat
docker run -p 8080:8080 --name -d tomcat #好像用不了
docker run -d --name tomcat -p 8081:8080 tomcat
宿主机端口 8080:容器端口 8080
不加-d为前台运行tomcat 否则为后台运行
前台运行tomcat会阻塞在屏幕上
-d为守护态运行 即为不会阻塞在屏幕上 而是在后台运行
附.Docker开启远程访问的权限
- 修改配置文件,打开2375端口
不确定docker.service文件路径的话输入
dpkg -L 软件包名
dpkg -L docker-ce
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd://
把这句话
↑ ↑ ↑
替换成
↓ ↓ ↓
–containerd后边不变
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
重新加载配置文件和启动:
#重新加载配置
systemctl daemon-reload
#重启docker
systemctl restart docker
vi编辑器 原样粘贴
先按 Esc 冒号: 输入 set paste 回车再进行粘贴
否则yml格式会错乱
获取阿里云镜像加速器
- 获取地址后 按照上方教程安装即可
完结撒花
作者:yufire © yufirem@vip.qq.com