ubuntu 安装docker

Docker 支持以下版本的 Ubuntu 操作系统:
  • Ubuntu Hirsute 21.04
  • Ubuntu Groovy 20.10
  • Ubuntu Focal 20.04 (LTS)
  • Ubuntu Bionic 18.04 (LTS)
Docker 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。
卸载旧版本
旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:
$ sudo apt-get remove docker \
docker-engine \
docker.io
 
使用 APT 安装
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
 
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

 

 
鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
 
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
 
# 官方源
 
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
然后,我们需要向 sources.list 中添加 Docker 软件源
  
复制代码
$ echo \
 
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
 
# 官方源
 
# $ echo \
 
# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
 
# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
复制代码

 

以上命令会添加稳定版本的 Docker APT 镜像源,如果需要测试版本的 Docker 请将 stable 改为 test。
安装 Docker
更新 apt 软件包缓存,并安装 docker-ce
 
$ sudo apt-get update
 
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装:
若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本
 
# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

 

 
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。
启动 Docker
$ sudo systemctl enable docker
$ sudo systemctl start docker 

两种方法迁移 Docker 的默认安装(存储)目录

 如果是通过 Ubuntu 的 apt-get 安装的 Docker,默认的安装目录应该是: /var/lib/docker 。

为了完全确定,可以使用以下的命令查询真正的安装路径:

sudo docker info | grep "Docker Root Dir"

前置工作

下文以/store/software/docker 这个路径作为要迁移的新 Docker 安装(存储)目录

在开始迁移之前,首先复制原 Docker 安装(存储)目录到新的路径下:

cp -a /var/lib/docker /home/docker/


然后备份原目录数据:

mv -u /var/lib/docker /var/lib/docker.bak

方法一:软链接

通过把 Docker 的原安装(存储)目录移动到自定义的其他路径下,然后在原位置下建立软链接是最简单快捷的方式。

首先,关停 Docker 服务:

sudo systemctl stop docker
# or
sudo service docker stop

接着,新建一个 /var/lib/docker 的软链:

sudo ln -fs /home/docker /var/lib/docker

 

最后,重启 Docker 服务:

sudo systemctl start docker
# or
sudo service docker start

 

启动 Docker 之后,以后你 pull image 和 run container,Docker 写入的路径依然是/var/lib/docker ,但是因为软链的设置,实际已经是往新的目录写入了。至此,完成了 Docker 安装(存储)目录的迁移。

方法二:直接修改 Docker 配置文件
Docker 版本 < v17.05.0
因为 dockerd 运行 Docker 服务的时候可以通过参数 graph 指定镜像和容器存放路径,比如: –graph=/var/lib/docker ,我们只需要修改配置文件指定启动参数即可。

Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致,在 Ubuntu 中的位置是: /etc/default/docker ,在 CentOS 中的位置是: /etc/sysconfig/docker 。

# 如果是 CentOS 则添加下面这行:

OPTIONS=--graph="/home/docker" --selinux-enabled -H fd://

# 如果是 Ubuntu 则添加下面这行(因为 Ubuntu 默认没开启 selinux):
OPTIONS=--graph="/home/docker" -H fd://
# 或者
DOCKER_OPTS="-g /home/docker"

 

Docker 版本 >= v17.05.0
因为 Docker 官方在这个发行版本就 deprecated 了 graph 这个 feature,所以如果你机器上安装的 Docker 版本 >= v17.05.0,则无法通过在 /etc/default/docker 配置文件中指定 graph 参数来修改 Docker 的默认安装(存储)目录了,具体参见官网文档:Docker Docs。

好在天无绝人之路,新版本的 Docker 还有其他方式可以达到我们修改安装(存储)目录的目的:通过修改(新建) /etc/docker/daemon.json ,指定 data-root 参数的值。

按如下操作:

vim /etc/docker/daemon.json

加入

{
"data-root": "/store/software/docker",
"storage-driver": "overlay2" # 这个是 Docker 是默认设置,这里也可以不用加
}

 


重启 Docker & 清理原安装(存储)目录
最后,重启 Docker 服务:

sudo systemctl restart docker
# or
sudo service docker restart

 


通过上述任一方法完成迁移之后,在确认 Docker 能正常工作之后,删除备份的原目录数据:

rm -rf /var/lib/docker.bak

 

参考链接
[1] Docker配置本地镜像与容器的存储位置 https://blog.csdn.net/wenwenxiong/article/details/78728696

[2] Control Docker with systemd  https://docs.docker.com/config/daemon/systemd/

[3] Deprecated Engine Features https://docs.docker.com/engine/deprecated/#-g-and---graph-flags-on-dockerd

安装net5.0

https://www.cnblogs.com/yhuse/p/net5.html

 

nginx安装

https://zhuanlan.zhihu.com/p/138007915

 

sudo apt install libc6-dev 
sudo apt install libgdiplus
# docker update --restart=always 容器名或容器ID
docker update --restart=always <CONTAINER ID>
# 例如将tomcat设为自启动
docker update --restart=always tomcat

 

 
posted @   ParallelForEach  阅读(166)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示