Recently, I had to build an environment which have a kind of real web application running to test LBaaS site affinity solution,. After a few minutes,I made a decision to install a Jenkins container on my testing Centos 7 virtual machines.
Unfortunately, my Centos virtual machines have no Internet access. So I spent a bit of time to work out how to installl docker and run a container offline on Centos 7. Then I have this blog which maybe can help others who have the same challenge.
The docker version which I am going to install is:
docker-ce-18.03.1.ce-1.el7.centos
On another Linux Centos 7 (minimum install) which have Internet access, I run the CLI below to identify all required packages for Docker offline installation.
repoquery -R docker-ce-18.03.1.ce-1.el7.centos
From the output, I found out that I need the following packages to complete Docker offline installation:
1:libsepol-2.5-8.1.el7
2:libselinux-2.5-12.el7
3:audit-libs-2.8.1-3.el7_5.1
4:libsemanage-2.5-11.el7
5:libselinux-utils-2.5-12.el7
6:policycoreutils-2.5-22.el7
7:selinux-policy-3.13.1-192.el7
8:libcgroup-0.41-15.el7
9:selinux-policy-targeted-3.13.1-19
10:libsemanage-python-2.5-11.el7
11:audit-libs-python-2.8.1-3.el7_5.1
12:setools-libs-3.3.8-2.el7
13:python-IPy-0.75-6.el7
14:pigz-2.3.3-1.el7.centos
15:checkpolicy-2.5-6.el7
16:policycoreutils-python-2.5-22.el7
17:container-selinux-2:2.68-1.el7
18:docker-ce-18.03.1.ce-1.el7.centos
19:audit-2.8.1-3.el7_5.1
Then I went to download docker rpm package and all dependent packages with yumdownloader:
yumdownloader –resolve docker-ce-18.03.1.ce-1.el7.centos
I archived the above packages (tar cf docker-ce.offline.tar *.rpm) and uploaded to my offline Centos 7 virtual machines. Then use the rpm CLI to install Docker:
[root@lbaas02 ~]# rpm -ivh –replacefiles –replacepkgs *.rpm
warning: audit-2.8.1-3.el7_5.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEYwarning: docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEYPreparing… ################################# [100%]Updating / installing… 1:libsepol-2.5-8.1.el7 ################################# [ 5%] 2:libselinux-2.5-12.el7 ################################# [ 11%] 3:audit-libs-2.8.1-3.el7_5.1 ################################# [ 16%] 4:libsemanage-2.5-11.el7 ################################# [ 21%] 5:libselinux-utils-2.5-12.el7 ################################# [ 26%] 6:policycoreutils-2.5-22.el7 ################################# [ 32%] 7:selinux-policy-3.13.1-192.el7 ################################# [ 37%] 8:libcgroup-0.41-15.el7 ################################# [ 42%] 9:selinux-policy-targeted-3.13.1-19################################# [ 47%] 10:libsemanage-python-2.5-11.el7 ################################# [ 53%] 11:audit-libs-python-2.8.1-3.el7_5.1################################# [ 58%] 12:setools-libs-3.3.8-2.el7 ################################# [ 63%] 13:python-IPy-0.75-6.el7 ################################# [ 68%] 14:pigz-2.3.3-1.el7.centos ################################# [ 74%] 15:checkpolicy-2.5-6.el7 ################################# [ 79%] 16:policycoreutils-python-2.5-22.el7################################# [ 84%] 17:container-selinux-2:2.68-1.el7 ################################# [ 89%] 18:docker-ce-18.03.1.ce-1.el7.centos################################# [ 95%] 19:audit-2.8.1-3.el7_5.1 ################################# [100%]
After the installation completed, started and enabled docker service:
[root@lbaas02 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@lbaas02 ~]# systemctl start docker
Now the next question for me is to import the offline Jenkins docker image. Firstly, I pulled the Jenkisn docker image:
docker pull jenkins/jenkins
Then exported the docker image as a file and uploaded to my testing Centos.
docker save -o jenkins.docker jenkins/jenkins
On my testing Centos, I loaded the image to docker process.
[root@lbaas01 ~]# docker load -i jenkins.docker
f715ed19c28b: Loading layer [==================================================>] 105.5MB/105.5MB 8bb25f9cdc41: Loading layer [==================================================>] 23.99MB/23.99MB 08a01612ffca: Loading layer [==================================================>] 7.994MB/7.994MB 1191b3f5862a: Loading layer [==================================================>] 146.4MB/146.4MB 097524d80f54: Loading layer [==================================================>] 2.332MB/2.332MB 685f72a7cd4f: Loading layer [==================================================>] 3.584kB/3.584kB 9c147c576d67: Loading layer [==================================================>] 1.536kB/1.536kB e9805f9bdc9e: Loading layer [==================================================>] 356.3MB/356.3MB 8b47d19735d5: Loading layer [==================================================>] 362.5kB/362.5kB e2a15a753d48: Loading layer [==================================================>] 338.9kB/338.9kB 287c6d658570: Loading layer [==================================================>] 3.584kB/3.584kB 5e9d64b80844: Loading layer [==================================================>] 9.728kB/9.728kB be6e5f898997: Loading layer [==================================================>] 868.9kB/868.9kB 609adfa44126: Loading layer [==================================================>] 4.608kB/4.608kB a26f92334a9c: Loading layer [==================================================>] 75.92MB/75.92MB de90b90d0715: Loading layer [==================================================>] 4.608kB/4.608kB 13d8fca176c6: Loading layer [==================================================>] 9.216kB/9.216kB be0781510eef: Loading layer [==================================================>] 4.608kB/4.608kB d7e644ce9f14: Loading layer [==================================================>] 3.072kB/3.072kB 47dd83bc99e4: Loading layer [==================================================>] 7.168kB/7.168kB 96e3e5ce2959: Loading layer [==================================================>] 12.29kB/12.29kB Loaded image: jenkins/jenkins:latest
[root@lbaas01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins latest 51158f0cf7bc 6 days ago 701MB
Now I am able to start my Jenkins docker on this offline Centos 7.
docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins
Wait for 2-3 mins. After Jenkins container is fully running, I can login into my Jenkins.:)

Could You Please provide A link for ( docker-ce.offline.tar )
containing all the dependencies
LikeLike
I just uploaded the packages to sync.com and shared the link with you via email. Please note these offline packages are based on Centos7 minimal installation.
LikeLike
Really helpful article, could I possibly also ask for this archive? Thanks!
LikeLike
Yes. Please go to the link below to donwload it.
https://ln.sync.com/dl/36f69dc70/zrfecit7-tzzjt88u-ymd992ma-z3sqpz67
LikeLike
Hi,
This is really very useful, can you please share the tar with me to, I’m trying to access above url but that’s not working.
Regards,
Pankaj
LikeLike
hi mate, I just verified the link. It looks like good. could you please try again?
LikeLike
Pingback: Integrate VMware NSX-T with Kubernetes – InsidePacket
Hi
i used repoquery command can not find above packages in my yum, my docker rpm packages name is docker-ce-19.03.5-3.el7.x86_64.rpm。
can you share your yum source for me or update above packages link, I can not access link https://ln.sync.com/dl/36f69dc70/zrfecit7-tzzjt88u-ymd992ma-z3sqpz67
LikeLike
sorry,this link is health when i use vpn access
LikeLike