一、docker基本入门

本文章内容针对k8s前置学习的docker入门,如需更多指令,可查看官方文档,文章如有错误,请指正

一、docker基础入门

1、ubuntu安装docker命令:

apt install docker.io -y

2、查看docker的配置文件b

cd /etc/docker/

3、编辑镜像加速配置

vim /etc/docker/daemon.json
{
        "registry-mirrors":[
        "https://docker.mirrors.ustc.edu.cn/"
        ]
}

保存文件后,编写以下命令:

systemctl daemon-reload
systemctl restart docker

二、docker常用命令

1、docker环境

1.1、查看docker版本

docker version

1.2、查看docker相关信息

docker info

2、容器的生命周期

(这里以nginx:1.14,容器ID为 87fb049482b3 ,(以下容器可以容器头个字符定义:例如可以缩写为8),为例子展开)

2.1、创建容器

docker create -it --name nginx nginx:1.14

2.2、查看正在运行的容器

docker ps

2.3、查看所有运行的容器

docker ps -a

2.4、启动容器

docker start 87fb049482b3 

2.5、停止容器

docker stop 87fb049482b3 

2.6、杀死容器进程

docker kill 87fb049482b3 

2.7、暂停容器中的所有进程

docker pause 87fb049482b3 

2.8、启动容器中的所有进程

docker unpause 87fb049482b3 

2.9、创建并启动容器

docker run xxx 

3、容器运维

(这里依旧以容器87fb049482b3 为例子,容器id可缩写为8,如果没有其他容器干扰的话)

2.1、获取容器的元信息

docker inspect 8

2.2、进入容器命令

docker exec -it 8 bash

2.3、退出容器

exit

2.4、查看容器里面的进程信息

docker top 8

2.5、查看容器耗费的cpu、内存情况

docker stats 8

2.6、更新容器名称

docker rename 8 nginx2

4、容器rootfs

(以下依旧以容器87fb049482b3 为例子)

4.1、把当前目录下的test.txt文本复制到容器的根目录下

docker cp test.txt 8./

4.2、查看容器里的文件做了哪些更改

docker diff 8

4.3、把当前容器打包成镜像

docker commit -m 'test-commit' 8 nginx-test:1.14

4.4、删除镜像

# 这里需要注意:rm是删除,imageId是镜像的id
docker rmi imageId 

4.5、删除所有未被tag标记或者违背容器使用的镜像

docker image prune

4.6、强制删除所有容器

#-f, --force:强制删除镜像文件,无需弹出提示确认;
docker rm -f$(docker ps -a -q)

4.7、强制删除所有镜像

#-f, --force:强制删除镜像文件,无需弹出提示确认;
docker rmi -f$(docker images -q)

5、镜像仓库

# login 登录仓库
# pull 拉取镜像
# push 推送镜像
# tag 给镜像打标记
# search 搜索镜像
docker login|pull|push|tag|search

6、容器资源

6.1、创建volume

docker volumn create mydata

6.2、挂载volume

#使用 docker run 命令时,可在命令中使用 -v 选项来挂载 Volume:
docker run -v <volume_name>:/<container_mount_point> <image_name>

#其中 <volume_name> 是你创建的卷名称,<container_mount_point> 是容器内的文件路径,和 <image_name> 是容器要使用的镜像名称。例如:
docker run -v mydata:/home/data nginx
#以上命令将在容器内创建一个 /home/data 目录,并将主机中的 mydata 目录挂载到该容器目录中(注意,冒号前面的为 Volume 名称,冒号后面的为容器内挂载路径)

7、系统日志

依旧以容器87fb049482b3 为例子

7.1、获取容器的活动日志

docker logs -f 87fb049482b3 

7.2、获取docker操作事件

# since后面带时间戳,表示自时间起的操作
docker events -since="14673202400"

7.3、镜像构建过程中的历史信息

docker history nginx:1.14

三、dockerfile的编写

1、基础镜像

创建dockerfile文件夹

mkdir dockerfile-std

编辑dockerfile文件

vim Dockerfiel
# 基础镜像
from nginx:1.19
# dockerfile的维护者
maintainer xuby@qq.com
# dockerfile的注释
label xuby dockerfile-std

由以上的dockrfile文件创建一个docker-std的v1版本镜像

docker build -t docker-std:v1 .

查看该镜像的创建历史

docker history docker-std:v1

2、环境变量

编辑dockerfile文件

# 基础镜像
from nginx:1.19
# dockerfile的维护者
maintainer xuby@qq.com
# dockerfile的注释
label xuby dockerfile-std

# 构建时的环境端口变量
arg port 80
# 运行时的环境端口变量
env port 80

3、拷贝文件

创建文件

touch test.txt

创建文件夹test

mkdir test

把test.txt文件复制到test文件夹

cp test.txt ./test

把test文件夹进行打包

tar -zcvf test.tar

编辑dockerfile文件

#基础镜像
from nginx:1.14
#dockerfile的维护者
maintainer xuby@qq.com
#dockerfile的注释
label imooc dockerfile-std
# 构建时的环境变量
arg port 80
# 运行时的环境变量
env port 80

# 拷贝
copy test.txt /
# 拷贝并且解压
add test.tar /

重新构建镜像

docker build -t docker-std:v1 .

创建并运行一个容器

docker run --rm -itd -P docker-std:v1

进入容器

# 该容器的id是781f684b3ac835b4967cc7d76bf290b56fd50d70276b6235cbf57e4c9180adea
docker exec -it 781 bash

在容器内执行ls查看是否有刚才复制的test.txt和test存在

4、工作目录

运行某文件夹下的命令,在实际开发中多永于跑囧本

#基础镜像
from nginx:1.14
#dockerfile的维护者
maintainer xuby@qq.com
#dockerfile的注释
label imooc dockerfile-std
#构建时的环境变量
arg port 80
#运行时的环境变量
env port 80
#拷贝
copy test.txt /
#拷贝并且解压
add test.tar /

# 指定工作目录
workdir /
run ls
# 指定另外一个工作目录
workdir ./test
run ls

使用docker build -t docker-std:v1 . 构建时即可查看到日志

在这里插入图片描述

5、指令和端口

编辑dockerfile文件

#基础镜像
from nginx:1.14
#dockerfile的维护者
maintainer xuby@qq.com
#dockerfile的注释
label imooc dockerfile-std
#构建时的环境变量
arg port 80
#运行时的环境变量
env port 80
#拷贝
copy test.txt /
#拷贝并且解压
add test.tar /

# 指定工作目录
workdir /
run ls
# 指定另外一个工作目录
workdir ./test
run ls

# 容器启动时执行的命令
# cmd 会作为entrypoint的参数进行传递
cmd ["-g","daemon off;"]
entrypoint ["nginx"]
# 把上面的arg port 80 端口作为入参
expose ${port}

6、卷挂载

#基础镜像
from nginx:1.14
#dockerfile的维护者
maintainer xuby@qq.com
#dockerfile的注释
label imooc dockerfile-std
#构建时的环境变量
arg port 80
#运行时的环境变量
env port 80
#拷贝
copy test.txt /
#拷贝并且解压
add test.tar /
# 指定工作目录
workdir /
run ls
# 指定另外一个工作目录
workdir ./test
run ls
# 容器启动时执行的命令
# cmd 会作为entrypoint的参数进行传递
cmd ["-g","daemon off;"]
entrypoint ["nginx"]
# 把上面的arg port 80 端口作为入参
expose ${port}

# 卷挂载
volume ["/data"]

构建镜像

docker build -t docker-std:v1 .

创建并且运行容器

docker run -itd --rm -P docker-std:v1

进入容器

# 以上生成的容器id为:3a8fd19c0269
docker exec -it 3a bash

通过ls查看是否有data路径

7、健康检查

#基础镜像
from nginx:1.19
#dockerfile的维护者
maintainer xuby@qq.com
#dockerfile的注释
label xuby dockerfile-std
#构建时的环境变量
arg port 80
#运行时的环境变量
env port 80
#拷贝
copy test.txt /
#拷贝并且解压
add test.tar /
#指定工作目录
workdir /
#在构建的时候执行
run ls
#换一个工作目录
workdir /test
#在构建的时候执行
run ls

#容器启动时执行的命令
#cmd 会作为entrypoint的参数进行传递
cmd ["-g","daemon off;"]
entrypoint ["nginx"]
#把上面的arg port 80 端口作为入参:1:开发人员方便查看 2:-P 动态映射窗口
expose ${port}

#挂载卷
volume ["/data"]


# 安装curl库,nginix:1.19自带curl
# RUN apt-get update 
# run apt-get install curl -y
#健康检查
healthcheck --interval=5s --timeout=3s cmd curl -fs http://localhost/ || exit 1

构建镜像:

docker build -t docker-std:v1 .

创建并且运行容器

docker run -itd -P --rm docker-std:v1

在这里插入图片描述

四、dockercompose入门

1、安装命令

apt install docker-compose -y

2、查看版本

docker-compose version

3、编辑

创建目录

mkdir dockercompose-std

创建编辑dockerfile文件

from nginx:1.14

创建编辑docker-compose.yaml文件

version: "3"
services:
  nginx1:
    image: nginx:1.14
    container_name: nginx1
    ports:
    - 8081:80
  nginx2:
    # 启动完nginx1启动
    depends_on:
    - nginx1
    build:
	  # 要注意这里是运行刚才创建的dockerfile文件
      context: .
    container_name: nginx2
    ports:
    - 8082:80

注意执行docker-compose命令的当前路径,必须的docker-compose.yaml所在的路径

创建并且启动dockercompost中的容器

docker-compose up -d

查看docker-compose正在运行的容器

doocker-compose ps

停止容器

docker-compose stop

启动容器

docker-compose start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值