计算机网络/计算机科学与应用/系统/运维/开发

12.3Docker

Docker 基本概念


镜像/容器/仓库

Docker特点

持续交付和部署

更轻松的维护和扩展

一致的运行环境

快速的启动时间

高效的利用系统资源

容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。

所有的文件写入操作,都应该使用数据卷Volume,或者绑定宿主目录,在这些位置

的读写会跳过容器存储层,直接对宿主发生读写,其性能和稳定性更高

数据卷生存周期独立与容器,容器消亡,数据卷不会消亡,数据不会丢失


Docker与加速配置

CentOS 安装 Docker CE

1、先卸载之前的老版本

yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-selinux \

docker-engine-selinux \

docker-engine 


2、安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2


3、添加源

yum-config-manager \

--add-repo \

https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo 


4、安装docker

yum makecache fast

yum install docker-ce 


5、启动docker

systemctl start docker 

systemctl enable docker 开机自启

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": [

                     "https://ghcr.geekery.cn",

                     "https://hub.geekery.cn",

                     "https://docker.m.daocloud.io",

                     "https://docker.rainbond.cc",

                     "https://docker.1panel.live"

                  ]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

# docker info  查看docker信息

[root@localhost docker]# docker pull nginx

Using default tag: latest

latest: Pulling from library/nginx

bc0965b23a04: Pull complete 

650ee30bbe5e: Pull complete 

8cc1569e58f5: Pull complete 

362f35df001b: Pull complete 

13e320bf29cd: Pull complete 

7b50399908e1: Pull complete 

57b64962dd94: Pull complete 

Digest: sha256:fb197595ebe76b9c0c14ab68159fd3c08bd067ec62300583543f0ebda353b5be

Status: Downloaded newer image for nginx:latest

docker.io/library/nginx:latest

[root@localhost docker]# docker image ls

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE

nginx         latest    66f8bdd3810c   6 days ago      192MB

hello-world   latest    d2c94e258dcb   19 months ago   13.3kB


获取镜像

docker pull [选项] [Docker Registry地址[:端口号]/] 仓库名[:标签]

# docker pull nginx:1.14.2 

# docker run -it --rm centos  /bin/bash 

--rm 表示容器运行退出后自动删除

指定 --rm 参数启动容器时通常不使用 -d 参数

启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定

# docker run -it -v /test:/soft centos /bin/bash

-v 参数挂载目录,将宿主机的文件夹挂载到容器中

查看某个镜像信息

[root@localhost docker]# docker image ls nginx

REPOSITORY   TAG       IMAGE ID       CREATED      SIZE

nginx        latest    66f8bdd3810c   6 days ago   192MB

# docker image ls -f since=nginx:latest

# docker image ls -q 


删除某一个镜像

# docker image rm 镜像id/镜像名称

https://blog.csdn.net/y1035793317/article/details/121537968


删除所有镜像 

# docker image rm  $(docker image ls -q)


Docker容器的使用

1、启动容器的2种方式

一种是基于镜像新建一个容器并启动

另外一个是将在终止状态 的容器重新启动

新建一个容器并启动,使用命令 docker run 

# docker run centos:7.6.1810 /bin/echo 'hello world'  (运行容器后马上退出)

启动一个bash终端,允许用户进行交互

# docker run -it centos:7.6.1810 /bin/bash 

-t 分配一个伪终端 并绑定到容器的标准输入上

-i 则让容器标准输入保持打开,即为交互模式


启动容器

# docker container start 容器id


    exec 方式进入容器

# docker exec -it 容器id  /bin/bash 


停止容器 

# docker container stop 容器id


重启容器

# docker container restart 容器id 


进入容器 

# docker attach 容器id 

# docker run centos:7.6 /bin/sh -c "echo hello world"


导出容器 (一般在容器迁移时使用)

docker export 容器id > 导出的文件

# docker export 容器id > centos_7.6.tar 


导入容器变成一个镜像

# cat centos_7.6.tar | docker import mycentos:7.6


容器的删除

# docker container rm  容器id  (只能删除停止的容器)

# docker container rm -f 容器id (强制删除正在运行中的容器)


删除所有容器 (已经终止的容器)

# docker container prune 


Docker 仓库 

1、Docker Hub 

# docker search  镜像名

将自己的镜像推送到Docker Hub 

# docker tag centos:6.10 username/centos:6.10

(username 为docker账号用户名)

# docker image ls 

# docker push username/centos:6.10

# docker search username 


2、私有仓库

docker-registry 是官方提供的工具 构建私有镜像仓库

# docker run -d -p 5000:5000 --restart=always --name registry registry 


-p 5000:5000 宿主机端口:容器端口

--restart=always 开机自启

--name registry 自己起的镜像名

registry  经项目

增加 标记

# docker  tag centos:7.6.1810  127.0.0.1:5000/centos:7.6.1810

将本地镜像推送到自己的私有仓库

# docker push 127.0.0.1:5000/centos:7.6.1810


好的生活就是不瞎想,做得多,要得少,常微笑,懂知足。

评论

^