Docker 的安装使用

官方说明文档网址:

Install Docker Engine on Ubuntu | Docker Documentation

安装Docker

准备工作

要在 Ubuntu 上开始使用 Docker Engine,请确保满足先决条件,然后 安装 Docker。

先决条件:

要安装 Docker Engine,您需要以下 Ubuntu 版本之一的 64 位版本:

  • Ubuntu Impish 21.10
  • Ubuntu Hirsute 21.04
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)

本操作说明以18.04版本的Ubuntu作为示例安装。

安装方法

您可以根据需要以不同方式安装 Docker Engine:

1.设置Docker的源码仓库,并从中安装,以便于安装和升级任务。

2.下载 DEB 包并 手动安装并完全手动管理升级。例如在无法访问互联网的系统上安装 Docker。

3.在测试和开发环境中,部分用户选择使用自动化便捷脚本来安装Docker。

使用代码仓库安装:

在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker

设置存储库

更新 apt 包索引。

sudo apt-get update

Docker 的安装使用

安装 apt 依赖包,用于通过HTTPS来获取仓库:

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

下图是正确执行的结果

Docker 的安装使用

※※※※※※※如果你遇到了错误※※※※※※※※※※※

Docker 的安装使用

※※※※※※※可以执行下面的命令※※※※※※※※※※※

先卸载破损的包

sudo apt-get purge libcurl4

 Docker 的安装使用

然后执行

sudo apt-get install curl

Docker 的安装使用

都执行完之后重新执行,安装命令

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

添加 Docker 的官方 GPG 密钥:

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

Docker 的安装使用

验证指纹秘钥

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。

sudo apt-key fingerprint 0EBFCD88

Docker 的安装使用

使用以下指令设置稳定版仓库

sudo add-apt-repository \

   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \

  $(lsb_release -cs) \

  stable"

 Docker 的安装使用

安装 Docker Engine-Community

更新 apt 包索引。

sudo apt-get update

 Docker 的安装使用

安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:

自动使用最新版本

sudo apt-get install docker-ce docker-ce-cli containerd.io

使用特定版本:

使用命令查询相应版本的版本号

apt-cache madison docker-ce

 Docker 的安装使用

使用第二列中的版本字符串安装特定版本,例如 5:20.10.12~3-0~ubuntu-bionic。

sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功:

sudo docker run hello-world

下图是你运行正确的结果:

Docker 的安装使用

※※※※※※※如果你遇到了错误※※※※※※※※※※※ 

 Docker 的安装使用

不要慌,这是因为人家例子默认指定的下载路径是国外的,被国家给封禁了,你修改

/etc/docker/key.json  里的地址就好了。

修改前注意改变一下key.json的权限。

文件修改成以下内容:

{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","https://hub-mirror.c.163.com","https://registry.docker-cn.com"],

"insecure-registries": ["10.0.0.12:5000"]}

修改保存后再次执行

sudo docker run hello-world

然后你就会看到正确的执行结果了。

卸载 docker

删除安装包:

sudo apt-get purge docker-ce

删除镜像、容器、配置文件等内容:

sudo rm -rf /var/lib/docker

自定义镜像修改

可以使用Dockerfile对镜像进行修改

详见:Docker Dockerfile | 菜鸟教程Docker 的安装使用https://www.runoob.com/docker/docker-dockerfile.html

二 如何使用Docker

主机下创建镜像

  1. 启动root权限 sudo su - 然后输入密码
  2. 使用docker pull ubuntu:18.04,完成ubuntu18.04版本镜像下载
  3. 使用docker images,用于下载完毕之后查看镜像情况

Docker 的安装使用

  1. docker rmi <IMAGE ID>,完成镜像删除

例如:docker rmi 0da5273cb2af

 

创建容器及容器的基本操作命令

主机下启动容器

以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:

docker run -it --name test ubuntu:18.04 /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
  • 输入  exit  退出容器

主机下查看所有的容器命令如下:

docker ps -a

Docker 的安装使用

 

主机下查看所有镜像命令

docker images

简单来说,容器可以理解为一个虚拟机,镜像就是装在里面的系统。

如果想详细了解二者的区别,可以参考下面的文章:

Docker容器和镜像的区别 - 浪仙 - 博客园

使用attach/start/stop/exit命令进入/启动/停止/退出开启的test容器

启动

docker start test

进入(执行退出时,会关闭容器)

docker attach test

进入(执行退出时,不会关闭容器)

docker exec -it containerID /bin/bash

下图就是上面两个进入命令的区别,注意看在执行了exit退出之后的docker ps命令的结果

Docker 的安装使用

退出

exit

停止

docker stop test

重启

docker restart test

 Docker 的安装使用

 

导出导入指定容器的镜像:

1.导出容器内的镜像

docker export 0da5273cb2af > ubuntu.tar

0da5273cb2af为container id

ubuntu.tar 为导出的container压缩包

Docker 的安装使用

2. 导入特定的镜像到容器内

docker import ubuntu.tar test2:v1

test2:v1  名称:标签

 Docker 的安装使用

 

主机下连接容器

以桥接的形式创建网络test-net

docker network create -d bridge test-net

查看所有docker网卡信息,

docker network ls

Docker 的安装使用

创建一个容器并连接到网络

docker run -itd --name test1 --privileged=true --network test-net ubuntu:18.04 /bin/bash

-t: 在新容器内指定一个伪终端或终端。

-i: 允许你对容器内的标准输入 (STDIN) 进行交互。

-d: 后台运行(attach id 进入容器 exec id 退出容器)

/bin/bash:使用shell脚本进行交互

--name:表示创建container的名字

--privileged=true 用于开启root权限,否则进入container仅能够获取普通用户权限

--network用于连接网卡,此处指定了之前创建的test-net网卡

<ubuntu>:用于指定ubuntu镜像创建一个container

创建第二个容器

docker run -itd --name test2 --privileged=true --network test-net ubuntu:18.04 /bin/bash

然后启动两个终端,分别启动两个容器

docker start XXXXXXXXX

docker attach XXXXXXX

需要通过 ping 命令来证明 test1 容器和 test2 容器建立了互联关系。

那么我们就需要给test1test2 容器内中安装 ping 命令。

安装ping (两个参与测试的容器都需要安装)

apt-get update

apt install iputils-ping

安装好之后

在容器1中使用ping去连接容器2名字。

例:ping test2

Docker 的安装使用

同理可以在容器2中,ping容器1.

例:ping test1

 Docker 的安装使用

安装ifconfig

apt-get update

apt-get install  net-tools

安装ip工具(用于vector ap中开启多播和ipv6地址)

apt-get update

apt-get install iproute2

从主机复制到容器

sudo docker cp host_path containerID:container_path

例子:sudo docker cp /home/ly/Desktop/AOS.tar.gz f22e2636b12d:/

从容器复制到主机

sudo docker cp containerID:container_path host_path

例子:sudo docker cp f22e2636b12d: /cmake-3.15.0-rc1.tar.gz /home/ly/Desktop/

本文内容到此结束。

下面的内容是作者自己留着使用的,

apt-get update
apt-get install openjdk-8-jdk

tar zcf CD.tar.gz ./4_D00

docker run -it 0c06e39320a5 /bin/bash

docker rmi 5a214d77f5d7

docker rm -f 47ce6b4c3e55

#sh
#docker pull centos
#docker images
#docker run -it centos:latest /bin/bash
#download jdk gz
from centos
MAINTAINER stormsquirrel hs96.cn@gmail.com
RUN mkdir /usr/local/java
ADD jdk-8u261-linux-x64.tar.gz /usr/local/java/
RUN ln -s /usr/local/java/jdk1.8.0_261 /usr/local/java/jdk
ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
#docker build -t="centos-jdk" .
#docker run -it centos-jdk /bin/bash
 

上一篇:Raspberry 4B


下一篇:Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)