Docker & Dockerfile--(一)

Docker安装部署及镜像制作

1,部署方式

1.1,centos安装docker

## 更新yum源
yum update
##安装最新软件包,yum-utils 提供yum-config-manager功能,
yum install -y yum-utils device-mapper-persistent-data lvm2
##设置yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
##安装 Docker
yum install docker-ce docker-ce-cli containerd.io
##查看docker版本,验证是否部署成功
docker -v
##若未启动,查看docker ps 会报
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
##出现上面错误,先配置镜像加速器,在启动docker
systemctl enable docker
systemctl start docker
1.1.1,配置镜像加速器

以下命令可以直接拿去执行,每个人阿里云都有一个镜像加速器,可以用淘宝直接登录

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://b2zl43sp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.2,window10安装docker

安装部署参考如下官网:Docker–从入门到实战官网
https://yeasy.gitbook.io/docker_practice/image/pull
若安装过程中出现报错,从此网站中下载 wsl.msi 文件
https://czf-net.xyz/res/

2,docker基本概念

2.1,Docker 包括三个基本概念

  • 镜像(Image),就相当于是一个 root 文件系统,构建就不会被改变,分层构建。
  • 容器(Container),镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。实质就是进程,运行于属于自己的独立命名空间,自身就是一套独立的环境。容器运行以镜像为基础层,在其上创建一个当前容器的存储层用来存储容器运行读写的数据,容器存储层的生命周期和容器一样,随容器消亡而亡。容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用 数据卷(Volume)、或者 绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。
  • 仓库(Repository)集中的存储、分发镜像的服务。一个 Docker Registry 中可以包含多个 仓库(Repository);每个仓库可以包含多个 标签(Tag);每个标签对应一个镜像。<仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

3,Docker服务相关命令

## 开机启动docker
systemctl enable docker
## 启动docker
systemctl start docker
#重启docker服务
service docker restart 
systemctl restart network
## 查看docker状态
systemctl status docker
## 停止docker
systemctl stop docker

4,Docker镜像相关命令

官方镜像仓库https://hub.docker.com/

## 查看docker镜像
docker images
## 查看docker所有镜像id
docker images -q
## 搜索docker hub是否存在镜像 eg: redis
docker search redis
## 拉取镜像
docker pull redis ## 后面不接tag版本号,则默认下载最新的latest版本
docker pull redis:6.0 ## 后面接tag版本号,则拉取指定版本
## 删除镜像
docker rmi <IMAGE ID>
docker rmi <REPOSITORY:TAG>
## 删除所有镜像,不要轻易使用
docker rmi `docker images -q`

5,Docker容器相关命令

5.1,创建容器一

## 查看镜像
[root@localhost local] docker images
REPOSITORY   TAG       IMAGE ID       CREATED             SIZE
mysql        5.7       9f35042c6a98   About an hour ago   448MB
centos       7         eeb6ee3f44bd   12 days ago         204MB
redis        latest    02c7f2054405   3 weeks ago         105MB
## 创建容器一,
## 参数说明
# i-容器保持一直运行 
# t-给容器分配终端,输入命令 
# d-后台运行容器
# -it 创建交互式容器,自动进入容器,退出容器,关闭容器
# -id 创建守护式容器,需使用docker exec 进入容器,退出不会关闭容器
# name-给容器起名字
# /bin/bash相当于打开shell窗口脚本
[root@localhost local] docker run -it --name=csd centos:7 /bin/bash
[root@7589d20a533a /] ls
## 退出容器
[root@7589d20a533a /] exit 
exit
## 查看运行的容器
[root@localhost local] docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
## 查看所有容器
[root@localhost local] docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS                      PORTS     NAMES
7589d20a533a   centos:7   "/bin/bash"   11 minutes ago   Exited (0) 10 minutes ago             csd
## 

5.2,创建容器二

## 创建容器 后台运行
[root@localhost local] docker run -id --name=c2 centos:7
c1e408d83b5146210a175618feac91cde45ccbad2f01a9d5e6e7f7307169074c
## 进入容器一
[root@localhost local] docker exec -it c2 /bin/bash
[root@c1e408d83b51 /] ll
## 进入容器二
docker attach 容器名称

5.3,启动,停止,删除容器

## 查看所有容器
[r
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值