二、docker的安装和镜像管理
系列导航
二、docker的安装和镜像管理
1、卸载已经安装的docker
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate
\
docker-engine
2、使用 Docker 仓库进行安装
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y
yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库。
$ sudo
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
注:之后/etc/yum.repos.d会多出一个docker-ce.repo的文件
也可以使用国内清华的源如下
wegt https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
(1)安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
(2)要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
$ yum list
docker-ce --showduplicates | sort
-r
docker-ce.x86_64 3:18.09.1-3.el7
docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7
docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7
docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7
docker-ce-stable
通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
例如:$ sudo yum install docker-ce-19.03.8 docker-ce-cli-19.03.8 containerd.io
3、启动 Docker
$ sudo systemctl start docker
sudo systemctl stop docker
查看docker的版本号
# docker version
注:设置docker开机自动启动
$ systemctl enable docker
4、docker组件
docker主要组建由:镜像、容器、仓库
容器----镜像----仓库
5、安装nginx 示例
(1)查看可用版本
$ docker search nginx
(2)取最新版的 Nginx 镜像
$ docker pull nginx:latest
(3)查看本地镜像
$ docker images
(4)运行容器
$ docker run --name nginx-test -p 8081:80 -d nginx
参数说明:
- --name nginx-test:容器名称。
- -p 8081:80: 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。
6、镜像操作
[root@node03 ~]# docker image
Usage: docker image COMMAND
Manage images
Commands:
build Build an image from a Dockerfile
history Show the history of an image
inspect Display detailed information on one or more images
load Load an image from a tar archive or STDIN
ls List images
prune Remove unused images
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rm Remove one or more images
save Save one or more images to a tar archive (streamed to STDOUT by default)
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
(1)导出save
[root@node03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c7460dfcab50 2 months ago 126MB
ubuntu v1 d95affe68237 2 months ago 64.2MB
ubuntu latest 549b9b86cb8d 2 months ago 64.2MB
ubuntu 15.10 9b9cb95443b5 3 years ago 137MB
[root@node03 ~]# docker save ubuntu:v1>ubuntu:v1.tar.gz
[root@node03 ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg openstack-swift-object ubuntu:v1.tar.gz
(2)删除rm
[root@node03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c7460dfcab50 2 months ago 126MB
ubuntu v1 d95affe68237 2 months ago 64.2MB
ubuntu latest 549b9b86cb8d 2 months ago 64.2MB
ubuntu 15.10 9b9cb95443b5 3 years ago 137MB
[root@node03 ~]# docker image rm ubuntu:v1
强制删除镜像
docker image rm -f ubuntu:v1
Untagged: ubuntu:v1
Deleted: sha256:d95affe682373bd90a87a6ddeabb55923e573b28139a8b89861823c1da376874
Deleted: sha256:5497fad1c6326d9f1e78625d01940f001c5ba7b5c79ce7e4c7daa43d9a00fec8
[root@node03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c7460dfcab50 2 months ago 126MB
ubuntu latest 549b9b86cb8d 2 months ago 64.2MB
ubuntu 15.10 9b9cb95443b5 3 years ago 137MB
(3)导入load
注:ubuntu:v1.tar.gz是之前导出的镜像
[root@node03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c7460dfcab50 2 months ago 126MB
ubuntu latest 549b9b86cb8d 2 months ago 64.2MB
ubuntu 15.10 9b9cb95443b5 3 years ago 137MB
[root@node03 ~]# docker load -i ubuntu:v1.tar.gz
5497fad1c632: Loading layer [==================================================>] 66.57MB/66.57MB
Loaded image: ubuntu:v1
[root@node03 ~]# ^C
[root@node03 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c7460dfcab50 2 months ago 126MB
ubuntu v1 d95affe68237 2 months ago 64.2MB
ubuntu latest 549b9b86cb8d 2 months ago 64.2MB
ubuntu 15.10 9b9cb95443b5 3 years ago 137MB
(4)拉取镜像pull
例如:拉取最新的nginx镜像
$ docker pull nginx:latest
(5)推镜像
上推需要先登录
登录
$ docker login
退出
$ docker logout
登录
docker login -u 用户名 -p 密码
docker push 172.25.131.101/library/nginx:latest
(6)镜像重命名tag
注:将名称很长的镜像重命名一个短名字,重命名后老的名称和新的名称都是同一个镜像,删除老名字的镜像只删除了连接,镜像还存在。
(7)查找镜像
例如查找httpd服务的镜像
#docker search httpd