Docker如何实现在线与离线安装
创始人
2024-11-20 09:04:12
0次

在线安装

这里采用yum源命令安装前期准备的依赖包,包括yum-utils、device-mapper-persistent-data、lvm2

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

因为官方镜像仓库网速较慢,在此设置阿里云镜像代理,以便快速下载、上传镜像。

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

接下来安装Docker-CE 社区版,通过以下命令查看docker社区版安装包列表。如下图所示各docker版本信息。

yum list docker-ce --showduplicates | sort -r

Docker如何实现在线与离线安装

选择对应版本安装docker

sudo yum install docker-ce.x86_64

启动

sudo systemctl enable docker

sudo systemctl start docker

验证:查看版本信息命令,出现下图时表明安装成功。

docker version

Docker如何实现在线与离线安装

离线安装

提供以下三种方式下载docker离线安装包

Docker官方地址:docker down

1.百度云下载地址:  https://pan.baidu.com/s/1tZpsOvY0wmCfwHXlNJuq8Q 提取码: rhaq

2.有网服务器执行命令下载:wget https://download.docker.com/linux/static/stable/x86_64/docker-18.09.6.tgz

3.官方参考文档:https://docs.docker.com/install/linux/docker-ce/binaries/#install-static-binaries

将已下载好的docker离线包拷贝到服务器,解压压缩包

tar -xvf docker-18.09.6.tgz

将解压出来的docker文件内容移动到 /usr/bin/ 目录下

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
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

添加权限后启动

chmod +x /etc/systemd/system/docker.service

重新加载配置文件

systemctl daemon-reload

启动Docker

systemctl start docker

设置开机自启

systemctl enable docker.service

验证是否安装成功

systemctl status docker

docker -v

**

四、常用命令(搜索、下载本地未有镜像需要联网)

**

搜索镜像,

#docker search 镜像名称

docker search java

Docker如何实现在线与离线安装

下载镜像

#docker pull 镜像名称

docker pull java

Docker如何实现在线与离线安装

查看已下载的镜像

docker images

Docker如何实现在线与离线安装

删除镜像

删除单个镜像:docker rmi 镜像名称

删除所有镜像:docker rmi -f $(docker images)

操作容器

使用docker run命令可新建并启动一个容器,例如使用java镜像启动:docker run java /bin/echo 'Hello World'

其它启动可选附带参数:

-d 选项:表示后台运行

-P 选项:随机端口映射

-p 选项: 指定端口映射,有以下四种模式:

① ip:hostPort:containerPort

② ip::containerPort

③ hostPort:containerPort

④ containerPort

实例测试Nginx容器

docker run --name nginxTest -d -p 91:80 nginx

说明:docker 启动容器时,本地无该容器时会自动从Docker Hup下载引用

-d #后台运行

-p #宿主机端口:容器端口 #开放容器端口到宿主机端口

–name #自定义容器名称

浏览器访问http://服务器ip:91 ,如果出现Nginx主页则表示启动成功。

查看容器状态

查看正在运行容器详情 docker ps

查看所有容器详情 docker ps -a

Docker如何实现在线与离线安装

– CONTAINER ID #容器ID

– IMAGE #镜像

– CREATED #创建时间

– STATUS #状态 Up代表正在运行,Exited 表示已停止运行

– PORTS #端口

– NAMES #容器名称

查看容器日志

格式:docker logs -f -t --tail 行数 容器名 或者 docker logs -f -t --tail 行数 容器ID

docker logs -f -t --tail 200 483a128fdb39

停止容器

docker stop 容器ID 或 docker stop 容器名称

强制停止容器

docker kill 容器ID

启动已停止的容器

docker start 容器ID

重启容器

docker restart 容器ID

进入容器

(1)使用docker attach 命令进行容器,有多窗口操作会同步显示和阻塞问题。

docker attach 容器ID

(2)使用nsenter进入容器

docker inspect --format "{{.State.Pid}}" 容器ID #查询出pid

nsenter --target 查询的pid --mount --uts --ipt --net --pid

(3) 推荐 使用docker exec 命令,该命令在1.3.x版本之后提供。

docker exec -it 容器ID /bin/bash

查看容器详情

docker inspect 容器ID

删除容器

docker rm 容器ID

#该命令不可删除正在运行的容器,要执意删除加-f 参数

打包镜像为离线包

docker save -o 文件名.tar 镜像名称

加载离线镜像包

docker load < 文件名.tar

使用Dockerfile构建Docker镜像

以上面创建的Nginx为例,创建dockerfiler文件

touch Dockerfile

编辑dockerfiler文件

vim Dockerfile

填入以下内容

FROM nginx
#添加进入docker容器后的目录(可以不填)
WORKDIR /opt/hello

RUN echo '

Hello World!

' > /usr/share/nginx/html/index.html

在Dockerfile所在路径执行以下命令

docker build -t nginx:my .

启动一个docker容器

docker run -d -p 92:80 nginx:my

当然也可指定配置文件路径

docker run -d -p 92:80 -v /u01/hello/config:/opt/hello/config nginx:my

说明:-d 后台运行,-p 对外暴露端口:内部端口 -v linux文件路径:容器内路径 --name 容器昵称 启动的镜像:版本号

之后只需要在linux 下的/u01/hello/config修改配置,重启容器加载。

浏览器访问http://ip:92 ,可看到“Hello World!”信息。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...