【Docker】Docker学习之一:离线安装Docker步骤

这篇具有很好参考价值的文章主要介绍了【Docker】Docker学习之一:离线安装Docker步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:基于Ubuntu Jammy 22.04 (LTS)版本安装和测试

1、Docker安装

1.1、离线安装

步骤一:官网下载 docker 安装包

wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz

步骤二:解压安装包;

tar -zxvf docker-24.0.6.tgz

步骤三:将解压之后的docker文件移到 /usr/bin目录下;

sudo cp docker/* /usr/bin/

步骤四:将docker注册成系统服务;

vim /etc/systemd/system/docker.service

然后在文件中添加以下内容,退出并保存。

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

步骤五:给文件增加可执行权限

chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload 

步骤六:设置开机自启动

systemctl enable docker.service

步骤七 :启动docker

systemctl start docker

步骤八:测试docker是否启动

docker run hello-world

离线安装docker,1024程序员节,linux,c,docker,学习

卸载步骤

步骤一:停止docker

sudo systemctl stop docker

步骤二:删除Docker服务

# 移除开机自启动
systemctl disable docker.service
# 删除service服务
rm -f /etc/systemd/system/docker.service

步骤三:删除Docker相关命令

rm -f /usr/bin/docker*
rm -f /usr/bin/containerd*
rm -f /usr/bin/ctr
rm -f /usr/bin/runc

步骤三:删除docker目录和容器相关文件

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

步骤四:验证是否已成功卸载

docker --version

1.2、在线安装

参考官方文档:Docker安装步骤

2、Docker镜像

2.1、镜像下载

步骤一:查找镜像

docker search ubuntu

离线安装docker,1024程序员节,linux,c,docker,学习

步骤二:下载镜像

docker pull ubuntu

离线安装docker,1024程序员节,linux,c,docker,学习

步骤三:查看镜像

docker images

离线安装docker,1024程序员节,linux,c,docker,学习

删除镜像,可以执行:

docker rmi e4c58958181a
#或者
docker rmi ubuntu:latest

2.2、容器命令

这里的ubuntu镜像就类似迷你版的ISO镜像文件,启动镜像的时候可以理解为以这个镜像创建了一个虚拟机,并执行了封装镜像的时候所书写的命令,对于这样已经启动的镜像我们称之为容器(containerd),这里测试所使用的只是一个ubuntu的镜像,启动的时候只是一个ubuntu的虚拟机,没有封装实际的功能。

步骤一:启动容器

docker run -it ubuntu:latest
#或者
docker run -it e4c58958181a

离线安装docker,1024程序员节,linux,c,docker,学习

可以看出启动之后进入到一个迷你版本的ubuntu系统,里面封装了一部分常用命令,但是大部分命令都没有安装。

执行 eixt 可以退出容器,并关闭该容器运行,类似于虚拟机关机,但是虚拟机本身还存在。

也可以执行ctrl + p 之后 执行 ctrl + q这样可以退出容器,但容器本身在后台继续运行,类似于虚拟机运行状态。

步骤二:查看启动的容器

docker ps -a

离线安装docker,1024程序员节,linux,c,docker,学习

这里显示状态Exited表示容器已经停止运行了,如果想要重启容器,可以执行docker start 700f9f498c9d, 其中700f9f498c9d表示容器的ID

步骤三:重启容器

docker start 700f9f498c9d

离线安装docker,1024程序员节,linux,c,docker,学习

步骤四:停止容器

docker stop 700f9f498c9d

离线安装docker,1024程序员节,linux,c,docker,学习

步骤五:删除容器

docker rm 700f9f498c9d

离线安装docker,1024程序员节,linux,c,docker,学习

步骤六:后台启动容器

docker run -itd ubuntu:latest
#或者
docker run -itd e4c58958181a

离线安装docker,1024程序员节,linux,c,docker,学习

步骤七:连接容器

docker attach 725f09c35ba6

离线安装docker,1024程序员节,linux,c,docker,学习

这样启动执行eixt之后容器也会关闭,如下:

离线安装docker,1024程序员节,linux,c,docker,学习

因此,可以使用下面命令链接容器:

docker exec -it 725f09c35ba6 /bin/bash

离线安装docker,1024程序员节,linux,c,docker,学习

这样使用exit退出容器,容器也不会关闭。

步骤八:查看ubuntu版本

cat /etc/issue

离线安装docker,1024程序员节,linux,c,docker,学习

3、程序封装

3.1、需求分析

需要将在ubuntu 22.04版本下编译的coml_transcode可执行程序及运行目录上传到容器中,并在容器中成功运行程序,然后将该容器打包成一个新的镜像基础文件作为发布版使用,现场服务器部署完docker之后直接加载启动这个新的镜像就能成功运行coml_transcode程序,这样就避免了依赖现场服务器环境(操作系统不一致,glibc库不一致等导致程序启动不成功等问题。)

3.2、创建镜像

步骤一:虚拟机上编译源代码,并将运行目录上传

离线安装docker,1024程序员节,linux,c,docker,学习

步骤二:编写DockerFile文件

该文件和源文件在一个文件夹下,如上图所示,名为dockerfile,文件内容:

FROM ubuntu

ENV MYPATH /home/coml_transcode

COPY ./coml_transcode $MYPATH

WORKDIR $MYPATH

ENTRYPOINT ["bash", "start.sh"]

FROM ubuntu: FROM是后面是该目标镜像使用的基础镜像,基础镜像有且只能有一个,这里使用ubuntu作为基础镜像;

ENV: 配置环境目录;

COPY: 将宿主机下的文件拷贝到镜像;

WORKDIR:设置容器的默认工作目录;

ENTRYPOINT: 器启动时第一个运行的命令及其参数,这里表示启动容器是执行start.sh脚本。

步骤三:创建镜像

docker build -f ./dockerfile -t coml_transcode:v1.0 .

./dockerfile 表示Dockerfile的所在位置;

coml_transcode:v1.0 表示新建镜像的名字及版本号

离线安装docker,1024程序员节,linux,c,docker,学习

构建完查看是否成功构建,通过docker images命令查看当前本地的所有镜像:

docker images

离线安装docker,1024程序员节,linux,c,docker,学习

这里的coml_trancode镜像便是刚创建的

步骤四:通过镜像运行一个容器

docker run -d coml_transcode:v1.0

离线安装docker,1024程序员节,linux,c,docker,学习

步骤五:链接容器

docker exec -it 02135e2b8b7d /bin/bash

离线安装docker,1024程序员节,linux,c,docker,学习

步骤六:导出镜像

通过上述可以验证程序能够在ubuntu基础虚拟机上面运行,将coml_transcode这个镜像导出

docker save -o ./coml_transcode.tar coml_transcode:v1.0

离线安装docker,1024程序员节,linux,c,docker,学习

4、现场环境

4.1、安装Docker

现场服务器按照1.1章节步骤安装docker

4.2、导入镜像

步骤一:将coml_transcode.tar镜像导入到现场服务器上

docker load -i coml_transcode.tar

离线安装docker,1024程序员节,linux,c,docker,学习

步骤二:通过该镜像启动一个容器

docker run -d 18820b82f7eb

离线安装docker,1024程序员节,linux,c,docker,学习

步骤三:链接容器

docker exec -it 98c9c6c3bf75 /bin/bash

离线安装docker,1024程序员节,linux,c,docker,学习

可以看到程序已经成功启动

5、总结

1、预安装命令

vim
ifconfig
dstat
ufw
tcpdump
ping

初始化ubuntu镜像安装的命令很少,可以通过3.2章节编写Dockerfile文件来预安装可能用到的命令,如下:

FROM ubuntu

ENV MYPATH /home/coml_transcode

COPY ./coml_transcode $MYPATH

WORKDIR $MYPATH

#更新apt
RUN apt-get update
#安装vim编辑器
RUN apt -y install vim
#安装ifconfig命令查看网络IP
RUN apt -y install net-tools
#安装防火墙查看攻击
RUN apt -y install ufw
#安装网络IO查看工具
RUN apt -y install dstat
#安装抓包工具
RUN apt -y install tcpdump
#安装ping命令
RUN apt -y install iputils-ping

ENTRYPOINT ["bash", "start.sh"]

然后再创建新的镜像即可,这样通过新镜像启动的容器初始就存在这些命令。

离线安装docker,1024程序员节,linux,c,docker,学习

2、网络配置

Doker启动的容器存在4种网络配置,如下表所示:

网络模式 指定方式 解释
bridge --network bridge指定,默认使用docker0 桥接模式链接宿主机,通过虚拟出来的docker0作为网桥链接物理网卡,也可以使用docker network create --subnet=172.18.0.0/16 docker1创建新的网桥使用。
host --network host指定 主机模式链接宿主机,通过和宿主机共享同一物理网卡链接,自身不在配置IP,这种模式无法做到网络端口映射。
none --network none指定 none模式,禁用网络功能,这个Docker容器不存在网卡,IP等信息。不能和其它容器或宿主机进行通信。
container --network container:NAME或者容器ID container模式,同其它容器共享网络,MAC地址和ip一样。

docker容器启动的时候如果不指定网络模式,默认选择bridge模式

3、CPU隔离

docker run -d --cpuset-cpus=1-20 coml_transcode:v2.0

指定该容器使用CPU 1-20

4、日志文件同步

日志同步可以做到容器指定目录下的文件可以和宿主机指定目录下的文件进行实时同步功能。这样可以解决如下几个问题:

1.如果启动的容器异常退出之后,重启不起来,导致容器里存在的程序日志信息无法查看;

2.如果需要更新程序,只需要将最新版本的程序,上传至宿主机的共享目录下,然后重启容器即可完成程序的迭代更新;

3.对于集群部署的容器,可以将宿主机共享文件统一设置再一个目录下,如:data/data1, data/data2, data/data3这样的格式,这样便于查看每个容器所打印的日志信息,不必去连接到每一个容器去查看。

启动容器时使用如下命令:

# 获取宿主机可执行程序运行目录
root@ubuntu:/home/DockerTranscode/coml_transcode# pwd
/home/DockerTranscode/coml_transcode

# 启动容器
 docker run -d --privileged=true -v /home/DockerTranscode/coml_transcode:/home/coml_transcode/ coml_transcode:v5.0

离线安装docker,1024程序员节,linux,c,docker,学习

5、程序更新

参考文档:

1.Docker离线安装部署

2.Docker部署一个简单的c/c++程序的方法

3.Docker导出/导出镜像/容器

4.Docker进入容器方式

5.Docker限制cpu、内存使用的方法文章来源地址https://www.toymoban.com/news/detail-761501.html

到了这里,关于【Docker】Docker学习之一:离线安装Docker步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 银河麒麟V4下离线安装安装docker,并解决docker离线安装中错误问题。

    1,查看麒麟安装系统的对应的linux内核版本 cat /proc/version  2,根据自己内核版本去Docke官网下载离线安装包,具体的地址是:Index of linux/ubuntu/dists/xenial/pool/stable/amd64/ 我下载的分别是containerd.io_1.3.7-1_amd64.deb  ,docker-ce_19.03.9~3-0~ubuntu-xenial_amd64.deb  ,docker-ce-cli_19.03.0~3-0~ubuntu

    2024年02月07日
    浏览(57)
  • 【docker】docker 、docker-compose离线安装

    一、离线安装docker docker、docker-compose 百度盘 1. 下载docker安装包 官方地址: https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz 2.解压缩 tar -zxvf docker-20.10.9.tgz 3. 解压的docker文件夹全部移至/usr/bin目录 cp -p docker/* /usr/bin 4. 将docker注册为系统服务 ① 在/usr/lib/systemd/system/目录

    2024年02月04日
    浏览(80)
  • Docker进阶:离线环境下安装 Docker Compose

    💖The Begin💖点点关注,收藏不迷路💖 查看系统信息: 根据目标系统的架构(如 Linux、macOS),下载对应版本的 Docker Compose 二进制文件。例如: 对于 macOS 系统,选择下载 docker-compose-Darwin-x86_64 文件。 对于 Linux 系统,选择下载 docker-compose-linux-x86_64 文件。 Docker Compose 文件版

    2024年03月20日
    浏览(48)
  • docker 离线安装

    制作安装包,来离线安装 doker 和 docker-compose Docker 官网离线安装文档:Install Docker Engine from binaries 整理步骤如下: 1.去官网下载 docker 安装包,地址为:https://download.docker.com/linux/static/stable/x86_64/; 2.解压; 3.移到 /usr/bin; 4.后台运行; 1.去 https://github.com/docker/compose/releases 下

    2024年02月15日
    浏览(23)
  • 离线安装Docker镜像

    部分线上服务器无法连接公网,或者服务器下载镜像比较慢,遇到这种情况要怎么解决? 我们可以在联网的本机或服务器上,将已经下载好的镜像导出,然后导入到没有网络的服务器上,通过Docker加载。 例如,这里有一个镜像grafana/loki:2.2.1 使用docker save导出镜像 将导出的镜

    2024年02月16日
    浏览(40)
  • Docker离线安装

    Docker离线安装 一、安装步骤 1. 下载 Docker 二进制文件(离线安装包) 下载地址:https://download.docker.com/linux/static/stable/x86_64/ 注:本文使用 /x86_64/docker-18.06.1-ce.tgz,注意对应操作系统类型。 2. 通过 FTP工具将 docker-18.06.1-ce.tgz 上传到服务器上 3. 解压安装包 tar zxf docker-18.06.1-ce.

    2024年02月14日
    浏览(26)
  • 【Docker & Docker-compose 离线一键安装部署】

    说明:docker的运行基于linux内核。(仅支持linux系统上运行) 下载docker 和 docker-compose 离线安装包 docker安装包下载地址:https://download.docker.com/linux/static/stable/x86_64/ docker-compose 安装包下载地址:https://github.com/docker/compose/releases graph : docker文件存在地址。可自行修改 1 . 将上述准

    2024年02月06日
    浏览(64)
  • Docker在线安装与离线安装

    本文提供了Docker在线安装与离线安装,解决不同环境下Docker安装问题。 卸载旧版本 下载需要的安装包 设置镜像仓库 更新yum软件包索引 安装docker 配置Docker 启动docker 查看docker 下载docker离线部署包 根据自己服务器的 架构 下载指定版本 版本 的docker部署包。https://download.docke

    2024年02月03日
    浏览(51)
  • Ubuntu:离线安装docker

    简介 :在 Ubuntu 上离线安装 Docker 需要事先在有网络连接的设备上下载 Docker 安装包及其依赖项,然后将这些文件传输到目标 Ubuntu 设备上进行安装。 历史攻略: ubuntu卸载docker centos7.6:安装docker 离线安装 Docker 的步骤: 1、在有网络连接的设备上下载 Docker 安装包及依赖项 :

    2024年02月16日
    浏览(45)
  • docker离线安装mysql

    第一步:找到一台联网的安装了docker的服务器,查看当前docker镜像: docker images ,拉取mysql镜像包: docker save -o mysql.tar mysql:latest ,其中latest为tag行内容 第二步:将下载好的mysql.tar复制到 /opt/soft 文件夹 第三步:运行命令加载mysql镜像: docker load -i mysql.tar 第四步:查看docke

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包