基础知识


![]()
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/

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

5万+

被折叠的 条评论
为什么被折叠?



