Docker

Docker是什么

Docker是一个容器平台,负责创建容器

使用Ubuntu安装Docker

系统要求

Docker CE 支持以下版本的 Ubuntu 操作系统:

  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)
  • Trusty 14.04 (LTS) (Docker CE v18.06 及以下版本)

使用 APT 安装

由于 apt 源(APT是一个客户/服务器系统)使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

1
2
3
4
5
6
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

1
$curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

然后,我们需要向 source.list 中添加 Docker 软件源

1
2
3
4
$ sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

安装 Docker CE

更新 apt 软件包缓存,并安装 docker-ce:

1
2
3
# 工具更新
$ sudo apt-get update
$ sudo apt-get install docker-ce

启动 Docker CE

镜像加速

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

1
2
3
# https://registry.docker-cn.com
docker build -t nginx:v1
docker run --name webserver -d -p 80:80 6b91d233e367

Docker如何装载应用程序

将应用程序制作成镜像,通过Docker引擎将镜像生成容器,最后以容器的形式运行程序

如何用docker运行SpringBoot

用docker运行的首先是一个容器,SpringBoot就在这个容器中,容器由镜像生成
因此首先要解决的是如何生成应用程序的镜像文件

docker-compose.yaml来用Docker Compose编排文件
这是整合多容器直接的相互配合

如果是在windows环境下则需要安装Docker for Windows

Docker操作

systemctl start docker
systemctl stop docker

镜像

镜像重命名

1
2
docker tag d72169616e20 mysql:8.0.16
docker rmi mysql:latest

构建镜像

1
2
docker build [选项] <上下文路径/URL/-> 下面的.路径为当前文件夹
docker build -t nginx:v1 .

查看和删除镜像

1
2
docker image ls
docker image rm {id}

容器

8a965478d94d为DockerID

1
2
3
4
5
6
7
8
9
10
11
12
13
# 基于镜像新建并启动
$ docker run --name webserver -d -p 80:80 {ImageID}

# 查看所有容器命令
$ docker container ls -a
# 容器启动
$ docker container start 8a965478d94d
# 容器停止
$ docker container stop 684d344fd36f
# 容器删除
$ docker container rm 4cd3e089d3e5
# 删除所有未启动的容器
$ docker container prune

进入/离开容器

$ docker exec {DockerId} bin/bash
$ docker exec -it 名字 /bin/bash
$ docker exec -it mysql1 bash
$ docker attach (会导致容器停止)
$ exit

容器的导入和导出

1
2
3
4
5
6
7
8

#导出容器快照
$ docker export 7691a814370e > ubuntu.tar
#导入容器快照
$ cat ubuntu.tar | docker import - test/ubuntu:v1.0
$ docker image ls
#保存所有数据
docker load

更新权限

docker exec -it gitlab update-permissions
docker restart gitlab

查看日志

docker logs -f {containerID}
docker logs –details {containerID}

私有仓库