Docker安装、镜像管理

学会使用帮助文档:https://docs.docker.com/
https://docs.docker.com/engine/install/
1、首先安装操作系统,目前支持Docker的Linux操作系统版本有以下这些,我们选择了centos,因为它的软件仓库内容非常丰富。内核版本要在3.0以上。
在这里插入图片描述

[root@localhost ~]# uname -r
3.10.0-693.el7.x86_64

2、卸载旧版本

[root@localhost ~]# yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine
Loaded plugins: fastestmirror, langpacks
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal

3、配置其他环境:关闭防火墙,selinux,配置ip地址。

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# systemctl disable firewalld.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

[root@localhost ~]# setenforce 0
[root@localhost ~]# vi /etc/selinux/config 
[root@localhost ~]# grep -v ^# /etc/selinux/config 

SELINUX=permissive
SELINUXTYPE=targeted 

[root@localhost ~]# dhclient
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:92:7e:e9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.217.145/24 brd 192.168.217.255 scope global dynamic ens33
       valid_lft 1797sec preferred_lft 1797sec
    inet6 fe80::20c:29ff:fe92:7ee9/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:17:af:c1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:17:af:c1 brd ff:ff:ff:ff:ff:ff

4、配置软件仓库,安装yum-utils,它提供了 yum-config-manager,可用来管理yum源,添加yum源。

[root@localhost /]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost /]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0    4G  0 part [SWAP]
└─sda3   8:3    0   35G  0 part /
sr0     11:0    1  4.2G  0 rom  /mnt
[root@localhost /]# vi /etc/yum.repos.d/dvd.repo
[root@localhost /]# cat /etc/yum.
yum.conf     yum.repos.d/ 
[root@localhost /]# cat /etc/yum.repos.d/dvd.repo 
[dvd]
name=dvd
baseurl=file:///mnt/
enabled=1
gpgcheck=0

[root@localhost /]# yum install -y yum-utils
Loaded plugins: fastestmirror, langpacks
base                                                            | 3.6 kB  00:00:00     
dvd                                                             | 3.6 kB  00:00:00     
extras                                                          | 2.9 kB  00:00:00     
updates                                                         | 2.9 kB  00:00:00     
(1/6): dvd/group_gz                                             | 156 kB  00:00:00     
(2/6): dvd/primary_db                                           | 3.1 MB  00:00:00     
(3/6): base/7/x86_64/group_gz                                   | 153 kB  00:00:00     
(4/6): extras/7/x86_64/primary_db                               | 236 kB  00:00:00     
(5/6): updates/7/x86_64/primary_db                              | 8.0 MB  00:00:08     
(6/6): base/7/x86_64/primary_db                                 | 6.1 MB  00:00:09     
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirrors.163.com
 * updates: mirrors.163.com
Resolving Dependencies
--> Running transaction check
---> Package yum-utils.noarch 0:1.1.31-42.el7 will be updated
---> Package yum-utils.noarch 0:1.1.31-54.el7_8 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================
 Package             Arch             Version                     Repository      Size
=======================================================================================
Updating:
 yum-utils           noarch           1.1.31-54.el7_8             base           122 k

Transaction Summary
=======================================================================================
Upgrade  1 Package

Total download size: 122 k
Downloading packages:
No Presto metadata available for base
warning: /var/cache/yum/x86_64/7/base/packages/yum-utils-1.1.31-54.el7_8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for yum-utils-1.1.31-54.el7_8.noarch.rpm is not installed
yum-utils-1.1.31-54.el7_8.noarch.rpm                            | 122 kB  00:00:00     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : yum-utils-1.1.31-54.el7_8.noarch                                    1/2 
  Cleanup    : yum-utils-1.1.31-42.el7.noarch                                      2/2 
  Verifying  : yum-utils-1.1.31-54.el7_8.noarch                                    1/2 
  Verifying  : yum-utils-1.1.31-42.el7.noarch                                      2/2 

Updated:
  yum-utils.noarch 0:1.1.31-54.el7_8                                                   

Complete!
[root@localhost /]# yum-config-manager \
>     --add-repo \
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@localhost /]# yum makecache fast
Loaded plugins: fastestmirror, langpacks
base                                                            | 3.6 kB  00:00:00     
docker-ce-stable                                                | 3.5 kB  00:00:00     
dvd                                                             | 3.6 kB  00:00:00     
extras                                                          | 2.9 kB  00:00:00     
updates                                                         | 2.9 kB  00:00:00     
(1/2): docker-ce-stable/7/x86_64/updateinfo                     |   55 B  00:00:00     
(2/2): docker-ce-stable/7/x86_64/primary_db                     |  60 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Metadata Cache Created

5、安装docker

[root@localhost /]# yum install docker-ce docker-ce-cli containerd.io -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.njupt.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package containerd.io.x86_64 0:1.4.4-3.1.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.74 for package: containerd.io-1.4.4-3.1.el7.x86_64
......

6、启动docker,并查看docker版本(docker version),和docker镜像( docker images),目前刚开始没有任何镜像。

[root@localhost /]# systemctl start docker
[root@localhost /]# systemctl enable docker
[root@localhost /]# ls /etc/lib
AccountsService  dbus      gssproxy   mlocate         pulse           stateless
alsa             dhclient  hyperv     net-snmp        rasdaemon       systemd
alternatives     dnsmasq   initramfs  NetworkManager  rpcbind         tpm
authconfig       docker    iscsi      nfs             rpm             tuned
bluetooth        flatpak   libvirt    os-prober       rpm-state       udisks2
chrony           fprint    lldpad     PackageKit      rsyslog         upower
color            games     logrotate  plymouth        samba           vmware
colord           gdm       machines   polkit-1        selinux         xkb
containerd       geoclue   misc       postfix         setroubleshoot  yum
[root@localhost /]# docker version
Client: Docker Engine - Community
 Version:           20.10.6
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        370c289
 Built:             Fri Apr  9 22:45:33 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
[root@localhost /]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

7、执行hello-world

[root@localhost ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete 
Digest: sha256:f2266cbfc127c960fd30e76b7c792dc23b588c0db76233517e1891a4e357d519
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

8、查看下载的hello-world镜像

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   2 months ago   13.3kB

9、镜像加速
https://www.runoob.com/docker/docker-mirror-acceleration.html
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{“registry-mirrors”:[“https://reg-mirror.qiniu.com/”]}

检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

$ docker info
Registry Mirrors:
https://reg-mirror.qiniu.com

10、搜索镜像
docker search centos

[root@localhost ~]# docker search centos
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                             The official build of CentOS.                   6541      [OK]       
ansible/centos7-ansible            Ansible on Centos7                              134                  [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   128                  [OK]
jdeathe/centos-ssh                 OpenSSH / Supervisor / EPEL/IUS/SCL Repos - …   118                  [OK]
centos/systemd                     systemd enabled base container.                 98                   [OK]
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              58                   [OK]
tutum/centos                       Simple CentOS docker image with SSH access      48                   
centos/postgresql-96-centos7       PostgreSQL is an advanced Object-Relational …   45                   
kinogmt/centos-ssh                 CentOS with SSH                                 29                   [OK]
pivotaldata/centos-gpdb-dev        CentOS image for GPDB development. Tag names…   13                   
guyton/centos6                     From official centos6 container with full up…   10                   [OK]
centos/tools                       Docker image that has systems administration…   7                    [OK]
drecom/centos-ruby                 centos ruby                                     6                    [OK]
pivotaldata/centos                 Base centos, freshened up a little with a Do…   5                    
darksheer/centos                   Base Centos Image -- Updated hourly             3                    [OK]
pivotaldata/centos-mingw           Using the mingw toolchain to cross-compile t…   3                    
pivotaldata/centos-gcc-toolchain   CentOS with a toolchain, but unaffiliated wi…   3                    
indigo/centos-maven                Vanilla CentOS 7 with Oracle Java Developmen…   2                    [OK]
amd64/centos                       The official build of CentOS.                   2                    
miko2u/centos6                     CentOS6 日本語環境                                   2                    [OK]
blacklabelops/centos               CentOS Base Image! Built and Updates Daily!     1                    [OK]
mcnaughton/centos-base             centos base image                               1                    [OK]
pivotaldata/centos6.8-dev          CentosOS 6.8 image for GPDB development         1                    
pivotaldata/centos7-dev            CentosOS 7 image for GPDB development           0                    
smartentry/centos                  centos with smartentry                          0                    [OK]

11、下载镜像
docker pull centos
下载的镜像默认存放的路径是:/var/lib/docker/overlay2/目录下,或者是/var/lib/docker/aufs目录下(旧版)。在

[root@localhost ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
Status: Image is up to date for centos:latest
docker.io/library/centos:latest
[root@localhost ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
hello-world           latest    d1165f221234   2 months ago   13.3kB
centos                latest    300e315adb2f   5 months ago   209MB
daocloud.io/centos    7         7e6257c9f8d8   9 months ago   203MB

12、如要删除某个镜像
docker rmi 镜像名称:TAG

[root@localhost ~]# docker rmi hello-world:latest 
Untagged: hello-world:latest
Untagged: hello-world@sha256:f2266cbfc127c960fd30e76b7c792dc23b588c0db76233517e1891a4e357d519
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
Deleted: sha256:f22b99068db93900abe17f7f5e09ec775c2826ecfe9db961fea68293744144bd
[root@localhost ~]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
centos                latest    300e315adb2f   5 months ago   209MB
daocloud.io/centos    7         7e6257c9f8d8   9 months ago   203MB

猜你喜欢

转载自blog.csdn.net/qq_26350199/article/details/116424394