第4章 Docker基本操作指南

本文详细介绍了在CentOS7环境下安装Docker的步骤,包括设置阿里云镜像仓库、安装Docker、启动Docker,以及后续的Docker基本操作,如搜索、拉取、运行、管理和构建镜像等。同时,文章还展示了Dockerfile的使用方法和多阶段构建的概念,旨在帮助读者全面理解Docker的使用。

基础知识

 

docker安装

环境:centos7

1.安装工具包

$ sudo yum install -y yum-utils 		#安装工具包,缺少这些依赖将无法完成

2. 设置阿里云的镜像仓库地址

 yum-config-manager \
  --add-repo \
   http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 3. 安装docker

sudo yum install docker-ce

 4. 启动docker

$ sudo systemctl start docker
或者
$ sudo service docker start
service docker start        #启动docker
chkconfig docker on         #加入开机启动

5. 检查安装情况

docker version

docker version

获取docker版本信息

docker version 

 docker info

获取docker详细信息

docker info

docker search 

搜索镜像

docker search  centos
docker search nginx

 一般搜索镜像都在官方搜索:https://hub.docker.com/search?q=alpine&type=image

 docker pull 

拉取一个镜像到本地,如本地已经,则不会重拉

docker pull alpine:latest

#拉取指定位置的镜像,如阿里云
docker pull xxx.com/alpine:latest

docker push

推送本地的镜像到镜像仓库

docker run 

#前台运行一个docker容器
docker run  -ti nginx:latest  bash
#前后台运行一个docker容器
docker run -d centos:centos8.4.2105 bash 

后台运行的容器执行完1-100输出后,直接退出,,状态为exited

docker logs

docker ps

#查看正在运行容器
docker ps 
#查看所有容器
docker ps  -a
#查看正在运行容器的id
docker ps  -q
#查看正在运行容器的id
docker ps  -qa

docker exec

进入正在运行的容器中

docker exec -ti 7aa413168878 bash
docker exec -ti 7aa413168878 sh

kubectl exec -ti  nginx-689dc9f579-kwnrk  -- sh
docker run -ti -p 12345:80 nginx:latest 

docker cp

宿主机---->docker

docker---->宿主机

docker rmi

删除镜像

docker rm

删除容器 

 docker stop

 docker start

docker history

查看镜像的修改记录

docker build

docker build  -t ImageName:TagName dir

-t − 给镜像加一个Tag
ImageName − 给镜像起的名称
TagName − 给镜像的Tag名
Dir − Dockerfile所在目录

docker commit

提交修改后的镜像

docker commit -a "zhaodaye" -m "add index.html"  04661cdce581  nginx:commit
docker run -ti    nginx:latest  bash
##exit退出容器,docker ps -a的exited中有此容器
docker run -ti  --rm  nginx:latest  bash
#exit退出容器及删除,docker ps -a的exited中无此容器;

Dockerfile命令

CMD和ENDRYPIONT必须要有一个;

CMD可以被覆盖,如果有ENTRYPOINT的话,CMD就是ENTRYPOINT的参数;

ENTRYPOINT----->COMMAND;CMD------>arg;

ADD:复制后解压;copy:复制不解压;

演示dockerfile使用

01 测试RUN命令

mkdir dockerfiles;
cd dockerfiles;
vim Dockerfile;



使用docker bulid命令生成镜像

docker build  -t centos:user .

 查看生成的镜像

 运行镜像 :

docker run -ti --rm centos:user bash
---rm退出即删除

 进入容器,查看run命令执行结果

02 测试CMD命令

docker build  -t centos:cmd .

03 ENTRYPOINT命令测试

03-01测试

docker build -t centos:ep .

03-2测试

docker build -t centos:ep1 .

04 ENV测试

docker build -t centos:ep_env .

 测试如下:

 05 ADD命令测试

docker build -t centos:add .

 05 COPY命令测试

docker run -ti --rm centos:copy  bash

06 WORKDIR命令测试

docker build -t centos:workdir1 .

07 USER命令测试

docker build -t centos:user  .

08 VOLOME命令测试

docker run -ti --rm centos:volume  bash

docker run  -ti -v /root/mysql_data/:/data centos:volume  bash

制作小镜像

一定不要使用centos镜像

建议使用:Alpine,busybox,scratch,Debian镜像,可以优化镜像大小

Glibc:优先使用node:slim python:slim

docker build -t alpine:workdir .

运行镜像

docker run -ti --rm alpine:workdir  sh

使用多阶段构建:编译阶段和生成最终镜像的操作分开;多个FROM

docker build  -t hello:single_bulidnew  .
docker run -ti --rm hello:single_bulidnew 

 验证成功:

生成镜像

docker build  -t hello:alpine .

 

 scratch镜像:程序仅依赖静态库,不依赖动态库时考虑;

docker build  -t hello:scratch   .

docker build  -t hello:scratch   .

 验证成功

宽哥k8s: https://edu.51cto.com/lecturer/11062970.html

常见命令参考:

https://docs.docker.com/engine/reference/commandline/version/

https://www.coonote.com/docker/docker-basic-command.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值