Ubuntu安装及使用Docker

2023-10-27

1. Docker的安装

1.1 准备工作

Docker 要求 Ubuntu 系统的内核版本高于 3.10,可支持64位的ubuntu操作系统 Cosmic 18.10、Bionic 18.04 (LTS)、Xenial 16.04 (LTS)。通过下面的命令查看自己的ubuntu内核版本:

查看ubuntu系统是32位的还是64位的:

getconf LONG_BIT

查看系统信息:

lsb_release -a

查看操作系统架构:

uname -a

1.2 卸载旧版本

Docker 的旧版本名称为:docker 、 docker-engine 或者 docekr-io。如果安装过旧版本的需要先卸载:

sudo apt-get remove docker docker-engine docker.io

1.3 安装Docker

最新版本的 Docker 分两个版本,Docker-CE(Community Edition)和Docker-EE(Enterprise Edition)。CE版本是免费的,如果我们学习或者一般应用,CE足够。下面我们安装社区版。

1.3.1 安装 https 相关的软件包

先更新一下软件源库信息

sudo apt-get update 

由于docker安装需要使用https,所以需要允许apt通过HTTPS使用仓库

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
1.3.2 设置apt仓库地址

鉴于国内网络问题,强烈建议使用国内地址 ~

  • 添加 阿里云 的apt仓库 (推荐)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
     "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
     $(lsb_release -cs) \
     stable"
  • 添加 Docker 官方apt仓库 (不推荐)
    执行该命令时,如遇到长时间没有响应说明网络连接不到docker网站,需要使用国内的

添加 Docker 官方的 GPG 密钥(为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

设置稳定版本的apt仓库地址

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
1.3.3 安装 Docker 软件
  • 更新一下软件源库信息
sudo apt-get update 
  • 安装最新版的Docker
sudo apt-get install docker-ce 

注:安装时如果出现以下错误说明有未能满足的依赖关系:

E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)

解决方案参考博客:解决错误apt --fix-broken install

  • 如果要安装指定版本的docker,可以先查看可供安装的所有docker版本
apt-cache policy docker-ce #
  • 再安装指定版本的docker
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
# sudo apt-get install docker-ce=18.03.0~ce-0~ubuntu 
1.3.4 检查docker是否安装成功

查看安装的docker版本

docker --version 

检查Docker CE是否安装正确

sudo docker run hello-world 

出现 “Hello from docker!” 界面表示安装成功。

2. Docker的使用

安装完成Docker后,默认已经启动了docker服务,如需手动控制docker服务的启停,可执行如下命令:

2.1 Docker服务的启动与停止

# 启动docker
sudo service docker start

# 停止docker
sudo service docker stop

# 重启docker
sudo service docker restart

2.2 设置用户权限

为了避免每次命令都输入sudo,可以设置用户权限(注意执行后须注销重新登录):

sudo usermod -a -G docker $USER

2.3 使用 Docker help

如果对某个 Docker命令不清楚,我们可以使用 docker xxx --hlep 来查询相关命令的使用。

 docker ps --help
Usage:  docker ps [OPTIONS]

List containers

Options:
  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show n last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display container IDs
  -s, --size            Display total file sizes

2.4 Docker 镜像 与 容器

在这里插入图片描述

  • Image(镜像,只读层的集合)
    镜像是一堆只读层的统一视角,除了最底层没有指向外,每一层都指向它的父层。统一文件系统( Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在。在用户的角度看来,只存在一个文件系统。镜像每一层都是不可写的,都是只读层。
  • Container(容器,一层读写层+多层只读层)
    容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。要点:容器 = 镜像 + 读写层,并且容器的定义并没有提及是否要运行容器。
2.4.1 镜像常用操作命令
# 列出本地主机上的镜像
docker images
相关参数:
	-a:列出本地所有的镜像(含中间映像层)
	-q:只显示镜像ID
	--digests:显示镜像的摘要信息
	--no-trunc:显示完整的镜像信息

# 拉取镜像
docker image pull (镜像ID 或 镜像名称)

# 删除镜像
docker rmi (镜像ID 或 镜像名称)

# 强制删除镜像
docker rmi -f (镜像ID 或 镜像名称)
2.4.2 容器常用操作命令
# 列出当前所有正在运行的容器
docker ps

# 列出所有的容器
docker ps -a
docker ps -a --no-trunc #不截断,查看完整信息

# 启动容器
docker start (容器ID 或 容器名称)

# 重新启动容器
docker restart (容器ID 或 容器名称)

# 停止容器
docker stop (容器ID 或 容器名称)

# 强制停止容器
docker kill (容器ID 或 容器名称)

# 删除容器
docker rm (容器ID 或 容器名称)

# 强制删除容器
docker rm -f (容器ID 或 容器名称)
# 显示容器的完整信息
docker inspect (容器ID 或 容器名称)

# 查看容器日志
docker logs (容器ID 或 容器名称)

# 查看容器日志
docker logs -f -t  --tail (容器ID 或 容器名称)
如:docker logs -f -t --tail=10 f9e29e8455a5
 -f : 查看实时日志
 -t : 查看日志产生的日期

# 进入容器所在目录
docker exec -it (容器ID) /bin/bash
docker container exec -it (容器ID) /bin/bash

# 退出容器所在目录
exit

2.5 修改Docker网段

Docker默认的网段是 172.17.0.1, 若是和本地网段相同则会造成冲突. 这里可以通过修改Docker的默认网段解决.

编辑文件/etc/docker/daemon.json

sudo vim /etc/docker/daemon.json

在文件中写入以下内容

 {
   "bip" : "172.16.10.1/24"
 }

重启docker服务后, 终端 ifconfig 查看ip地址情况, 可以看到 docker 的默认网址变为了 172.16.10.1
在这里插入图片描述

参考博客:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu安装及使用Docker 的相关文章

随机推荐