1、下载安装包
https://download.docker.com/linux/static/stable/x86_64/
2、上传压缩包至服务器
[root@server ~]# ls
anaconda-ks.cfg docker-23.0.3.tgz
3、解压文件包
[root@server ~]# tar -zxvf docker-23.0.3.tgz
docker/
docker/docker-proxy
docker/containerd-shim-runc-v2
docker/ctr
docker/docker
docker/docker-init
docker/runc
docker/dockerd
docker/containerd
[root@server ~]# ls
anaconda-ks.cfg docker docker-23.0.3.tgz
4、将解压出来的docker目录下的指令复制到 /usr/bin/ 目录下
[root@localhost /]# cp docker/* /usr/local/bin/
5、将docker注册为service服务
[root@server /]# vim /etc/systemd/system/docker.service
[root@server /]# cat /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
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
6、添加可执行权限
[root@server ~]# chmod a+x /etc/systemd/system/docker.service
7、启动docker服务
[root@server /]# systemctl daemon-reload
[root@server /]# systemctl start docker
[root@server /]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /etc/systemd/system/docker.service.
ps:无外网情况如何使用docker安装服务?
解决方案:找一台联网的服务器安装docker然后将所需服务拉取下来保存到本地再导入离线环境
8、联网服务器拉取镜像文件
[root@client ~]# docker pull nginx
[root@client ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6efc10a0510f 21 hours ago 142MB
9、导出镜像文件,将镜像导出成tar文件
[root@client ~]# docker save nginx -o nginx.tar
[root@client ~]# ls
anaconda-ks.cfg docker.sh nginx.tar
10、上传文件至离线服务器,导入镜像到离线docker容器
[root@server ~]# ls
anaconda-ks.cfg nginx.tar
[root@server ~]# docker load -i nginx.tar
ed7b0ef3bf5b: Loading layer [==================================================>] 84.02MB/84.02MB
fb6d57d46ad5: Loading layer [==================================================>] 62.51MB/62.51MB
935b5bd454e1: Loading layer [==================================================>] 3.584kB/3.584kB
f12d4345b7f3: Loading layer [==================================================>] 4.608kB/4.608kB
79974a1a12aa: Loading layer [==================================================>] 3.584kB/3.584kB
9d907f11dc74: Loading layer [==================================================>] 7.168kB/7.168kB
Loaded image: nginx:latest
[root@server ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6efc10a0510f 21 hours ago 142MB
11、测试启动服务
[root@server ~]# docker run --name nginx -p 8080:80 -d nginx
b521bf83705ba32687f0855e901762b0b583ccc4f87f2a6e1270d191640d5df7
[root@server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b521bf83705b nginx "/docker-entrypoint.…" 33 seconds ago Up 32 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp nginx