Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库或者私有仓库,这样一来当下次要在另外一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。
3、安装Docker。
安装Docker
[root@node1 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget
[root@node1 ~]# wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@node1 ~]# yum install docker-ce
安装完成后启动Docker并设置为开机自动启动
[root@node1 ~]# systemctl enable docker --nowCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service
查看版本信息
[root@node1 ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64
Experimental: false
4、Docker镜像操作。
名称(NAME)、描述(DESCRIPTION)、星级(STARS)、是否官方创建(OFFICIAL)、是否主动创建(AUTOMATED)。默认的输出结果会按照星级评价进行排序,表示该镜像受欢迎程度,在下载镜像时,可以参考这一项。
搜索镜像
[root@node1 ~]# docker search dhcp
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/networkboot/dhcpd Suitable for running a DHCP server for you… 96 [OK]
docker.io docker.io/joebiellik/dhcpd DHCP server running on Alpine Linux 21 [OK]
docker.io docker.io/instantlinux/dhcpd-dns-pxe Serve DNS, DHCP and TFTP from a small Alpi… 6 [OK]
下载镜像[root@node1 ~]# docker pull docker.io/networkboot/dhcpd
查看镜像信息[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/networkboot/dhcpd latest e25c872f0fca 19 months ago 139 MB
REPOSITORY:镜像属于的仓库。
TAG:镜像的表情信息,标记同一个仓库中的不同镜像。
IMAGE ID:镜像的唯一ID号,唯一标识了该镜像。
CREATED:镜像创建时间。
VIRUTUAL SIZE:镜像大小。
为本地镜像添加新的标签
[root@node1 ~]# docker tag docker.io/networkboot/dhcpd dhcp:dhcp
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dhcp dhcp e25c872f0fca 19 months ago 139 MB
docker.io/networkboot/dhcpd latest e25c872f0fca 19 months ago 139 MB
5、删除镜像。
[root@node1 ~]# docker rmi docker.io/networkboot/dhcpd
Untagged: docker.io/networkboot/dhcpd
6、存出镜像和载入镜像。
导出镜像
命令格式:docker save -o 存出镜像为本地文件
[root@node1 ~]# docker save -o dhcp dhcp
载入镜像[root@node1 ~]# docker load --input dhcp
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dhcp dhcp e25c872f0fca 19 months ago 139 MB
7、Docker容器操作。
创建容器
-i表示容器的输入保持打开;-t表示让Docker分配一个伪终端
[root@node1 ~]# docker create -it dhcp:dhcp /bin/bash
94c8c36080bc5538504e2cf8955f8c33219e777dcbfff50fb9fb2a57e58f2a60查看运行状态,-a可以列出系统最近一次启动的容器
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94c8c36080bc dhcp:dhcp “/entrypoint.sh /b…” 4 seconds ago Created dazzling_elion
启动容器
[root@node1 ~]# docker start 94c8c36080bc
94c8c36080bc
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94c8c36080bc dhcp:dhcp “/entrypoint.sh /b…” 4 minutes ago Up 1 second dazzling_elion
创建容器并启动执行一条shell命令
[root@node1 ~]# docker run dhcp:dhcp /bin/bash -c ls
bin
boot
····省略信息
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b857ee872a79 dhcp:dhcp “/entrypoint.sh /b…” 2 seconds ago Exited (0) 1 second ago brave_bohr加上-d选项后容器会持续在后台进行运行
[root@node1 ~]# docker run -d dhcp:dhcp /bin/bash -c “while true;do echo ok;done”
e739bd03b58f84136e6dddb751ce9a336347cfb61bd01c6d65ebcf9aa291cd51
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e739bd03b58f dhcp:dhcp “/entrypoint.sh /b…” 2 seconds ago Up 2 seconds trusting_wiles
容器的停止
停止后状态处于Exited,终止状态
[root@node1 ~]# docker stop e739bd03b58f