docker 2:Docker镜像增删改查
在1中我们已经完成docker的安装,接下来安装镜像。我们安装一个centos7的镜像。
首先我们可以将docker设置成开机自启动:
1 2 3 4 | [root@localhost ~]# systemctl enable docker.service Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service. [root@localhost ~]# systemctl enable containerd.service Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /usr/lib/systemd/system/containerd.service. |
然后开始下载镜像,我这里下载一个centos7的镜像文件,如下:
1 2 3 | [root@localhost ~]# docker pull centos:centos7 centos7: Pulling from library/centos 2d473b07cdd5: Downloading [===> ] 4.823MB/76.1MB |
下载之前也可以搜索一下看哪个镜像更合适,命令如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [root@localhost ~]# docker search centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official build of CentOS. 6484 [OK] ansible/centos7-ansible Ansible on Centos7 133 [OK] consol/centos-xfce-vnc Centos container with "headless" VNC session… 127 [OK] jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 117 [OK] centos/systemd systemd enabled base container. 97 [OK] centos/mysql-57-centos7 MySQL 5.7 SQL database server 87 imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK] tutum/centos Simple CentOS docker image with SSH access 47 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] nathonfowlie/centos-jre Latest CentOS image with the JRE pre-install… 8 [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 pivotaldata/centos-gcc-toolchain CentOS with a toolchain, but unaffiliated wi… 3 darksheer/centos Base Centos Image -- Updated hourly 3 [OK] |
由于dockerhub默认使用的是国外源,下载速度较慢,可以修改为国内源,方式如下,修改或者创建/etc/docker/daemon.json文件,添加上国内源即可。
1 2 3 4 5 | [root@localhost ~]# vi /etc/docker/daemon.json { "registry-mirrors" : [ "http://hub-mirror.c.163.com" ] } |
目前常用的国内源有:
1 2 3 4 5 6 7 8 | Docker 官方中国区 https: //registry.docker-cn.com 网易 http: //hub-mirror.c.163.com 中国科技大学 https: //docker.mirrors.ustc.edu.cn 阿里云 https: //pee6w651.mirror.aliyuncs.com |
然后下载完成,可以看到如下:
1 2 3 4 5 6 7 8 9 10 | [root@localhost ~]# docker pull centos:centos7 centos7: Pulling from library/centos 2d473b07cdd5: Pull complete Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e Status: Downloaded newer image for centos:centos7 docker.io/library/centos:centos7 [root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d1165f221234 3 weeks ago 13.3kB centos centos7 8652b9f0cb4c 4 months ago 204MB |
接下来我们可以运行这个容器:
1 2 3 4 5 6 7 8 9 | [root@localhost ~]# docker run -it centos:centos7 /bin/bash [root@c1c3d9b90171 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var 参数说明:cc9cf968068e -i: 交互式操作。 -t: 终端。 centos:centos7: 这是指用 centos版本镜像为基础来启动容器。centos7表示用版本7的镜像运行,若不加centos7则默认使用centos:latest运行。 /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 |
删除镜像:
1 2 | [root@localhost ~]# docker rmi hello-world Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container cc9cf968068e is using its referenced image d1165f221234 |
我们看到在删除hello-world的时候出现报错,说容器cc9cf968068e正在使用该镜像,所以在删除镜像之前需要删除该镜像创建的容器,然后再删除镜像即可。
1 2 3 4 5 6 7 | [root@localhost ~]# docker rm cc9cf968068e cc9cf968068e [root@localhost ~]# docker rmi hello-world Untagged: hello-world:latest Untagged: hello-world@sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726 Deleted: sha256:f22b99068db93900abe17f7f5e09ec775c2826ecfe9db961fea68293744144bd |
若是要查看所有容器的ID或者所有镜像的ID,并针对镜像ID做操作可以使用如下方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [root@localhost ~]# docker images -q #查看所有镜像ID d1165f221234 300e315adb2f 8652b9f0cb4c [root@localhost ~]# docker ps -aq #查看所有容器ID e63520d23e40 c1c3d9b90171 301f9596af4d c6763b64f608 8ce62505290a deca3b2f0da9 [root@localhost ~]# docker stop $(docker ps -aq) #停止所有容器 e63520d23e40 c1c3d9b90171 301f9596af4d c6763b64f608 8ce62505290a deca3b2f0da9 [root@localhost ~]# docker rm $(docker ps -aq) #删除所有容器 e63520d23e40 c1c3d9b90171 301f9596af4d c6763b64f608 8ce62505290a deca3b2f0da9 [root@localhost ~]# docker rmi $(docker images -q) #删除全部镜像 d1165f221234 300e315adb2f 8652b9f0cb4c |
posted on 2021-03-31 16:46 torotoise512 阅读(170) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步