Docker 使用记录

本帖记录日常docker使用时经常会遇到的一些命令和,会持续更新。话多不多说,直接开始。

一、docker 讲解

Docker是一个虚拟环境容器,可以将开发的环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。比如,你在本地用Python开发网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境

二、docker 安装

yum list install | grep docker # 查看是否有安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装docker相关依赖
yum install docker-ce # 安装docker社区版本

三、docker 常用方法

3.1 镜像

        镜像简介:镜像是docker的可执行文件,其中包括运行应用程序所需的所有代码内容、依赖库、环境变量和配置文件等通过镜像可以创建一个或多个容器;

        镜像管理:

docker search [options] term # 搜索docker hub上的镜像 例:docker search centos
docker images [options] [repository[:tag]] # 列出本地镜像 例:docker images    imageid可看是否是同一个镜像
docker pull [options] name[:tag] # 从远程镜像仓库下载镜像到本地 例:docker pull centos:7
docker image rm [options] IMAGE [IMAGE...] # 将本地的一个或多个镜像删除 例:docker rmi ubuntu:18.04 ubuntu(删除多个)
docker save [options] IMAGE [IMAGE...] # 将本地的一个或多个镜像打包保存成本地的tar文件(输出到STDOUT) 例:docker save centos ubuntu:14.04 centos:7 >/-o linux.tar
docker load [options] # 将save命令打包的镜像导入本地镜像库中 例:docker load -i linux.tar
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] # 对本地镜像的name,tag进行重命名,并新产生一个命名后镜像 例:docker tag centos:6.12 centos:7.4.1706
docker image inspect [options] IMAGE [IMAGE...] # 查看本地一个或多个镜像的详细信息
docker history [options] IMAGE # 查看本地一个镜像的历史(历史分层)信息 例:docker history centos

3.2 容器

        容器简介:容器是一种轻量级、可移植、并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行docker将镜像文件运行起来后,产生的对象就是容器。容器相当于是镜像运行起来的一个实例。容器具备一定的生命周期。

        容器生命周期:

docker ps -a # 查看所有的容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  # 利用镜像创建并启动容器. 例:docker run centos ls -a , docker run == docker create + docker start -a
docker create [options] IMAGE [COMMAND] [ARG]  # 利用镜像创建出一个created状态的待启动容器 例:docker create --name centos-test centos
docker rm [options] CONTAINER [CONTAINER] # 删除容器 例:docker rm -f centos-test b513 f341 # -f 强制删除
docker start [options] CONTAINER [CONTAINER...] # 开启没有运行状态(created/exited)的容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]/docker kill [OPTIONS] CONTAINER [CONTAINER...] # 将运行的容器进行关闭。例:docker stop/kill 8515
docker pause CONTAINER [CONTAINER...] # 将运行状态的容器暂停 。例:docker pause 8515
docker restart [OPTIONS] CONTAINER [CONTAINER...] # 将容器重启。例:docker restart 8515  # docker restart = docker stop + start
docker logs [OPTIONS] CONTAINER # 获取容器内的日志信息。例:docker logs 046d
docker rename CONTAINER NEW_NAME # 修改容器名称 例:docker rename 69cd test

        容器运行时操作:

docker run -dti centos python # 启动一个后台运行的容器
docker attach [OPTIONS] CONTAINER # 连接到容器中的command中。例:docker attach 69cd
docker exec [OPTIONS] CONTAINER COMMAND [ARG...] # 在容器中运行一个命令。 例:docker exec 9309 ps -A ; docker exec -it 9303 /bin/bash --进入容器内部

        容器与镜像关系:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 根据容器生成一个新的镜像  例:docker commit -m 'install net-tools' 1b15 centos-net:v1.0
docker export [OPTIONS] CONTAINER # 将容器当前的文件系统导出成一个tar文件。 例:docker export -o net-tools-images.tar 35c8
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] # 从一个tar文件中导入内容创建一个镜像。例:docker import -m '(import) install net-tools' net-tool-image.tar centos-net2:v1.0

四、Dockerfile 常用

        作用:根据Dockerfile创建镜像

        命令格式:docker build [OPTIONS] PATH | URL | -

        命令参数:

                PATH: Dockerfile所在路径(文件夹路径),文件名必须是Dockerfile
                URL: Dockerfile所在URL地址
                OPTIONS: 
                        -t, --tag list 为镜像设置名称和tag
                        -f, --file string 指定Dockerfile的路径(这时可以使用其他名称命名Dockerfile)

        dockerfile 命令概述:

FROM : 指定基础镜像
RUN : 构建镜像过程需要执行的命令。可以有多条
CMD : 添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖修改
ENTRYPOINT : 同CMD,但这个一定会被执行,不会被覆盖修改
LABEL : 为镜像添加对应的数据
MAINTAINER : 表明镜像的作者。将被遗弃,被LABEL替代
EXPOSE : 设置对外暴露的端口
ENV : 设置执行命令时的环境变量,并且在构建完成后,任然生效
ARG : 设置只在构建过程中使用的环境变量,构建完成后,将消失
ADD : 将本地文件或目录拷贝到镜像的文件系统中。能解压特定格式文件,能将URL作为要拷贝的文件
COPY : 将本地文件或目录拷贝到镜像的文件系统中
VOLUME : 添加数据卷
USER : 指定以哪个用户的名义执行RUN,CMD和ENTRYPOINT等命令
WORKDIR : 设置工作目录
ONBUILD : 如果制作的镜像被另一个Dockerfile使用,将在那里被执行Dockerfile命令
STOPSIGNAL : 设置容器退出时发出的关闭信号
HEALTHCHECK : 设置容器状态检查
SHELL : 更改执行shell命令的程序。Linux的默认shell是["/bin/sh","-c],Windows的是["cmd","/S","/C"]

五、docker-compose

        编写docker-compose.yml文件,构建多个镜像,共同服务一个项目。(Dockerfile 记录单个镜像的构建过程, docker-compse.yml 记录一个项目(project, 一般是多个镜像)的构建过程)

        docker-compose使用三个步骤:
            1、使用 Dockerfile 定义应用程序的环境。
            2、使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
            3、最后,执行 docker-compose up 命令来启动并运行整个应用程序。

        docker-compose 安装 & 使用:

       

# docker-compose 安装
yum -y install epel-release
yum -y install python3-pip
pip3 install --upgrade pip
pip install docker-compose
docker-compose -version

# docker-compose 使用
docker-compose up # 启动服务 
docker-compose stop/down # 停止服务 

六、docker 命令实例记录:

systemctl start/stop/restart/status docker # docker服务操作
docker images # 查看镜像
docker rmi dell-bos # 删除镜像
docker ps -a # 查看所有容器
docker rm -f d83 # 强制删除容器
docker cp 1ef:/cube/package.json /home/pactera # 将容器中的文件拷贝出来
docker cp /home/pactera/cube/.env  1ef:/cube/conf/ # 将容器中的文件拷贝回去 (更换Schema中的库需要修改.env文件数据库信息)
docker exec -it 1ef /bin/bash # 进入docker容器内部
docker start/stop/restart 1ef # 容器状态操作
docker stop 1ef # 停止容器
docker rm 1ef # 删除容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值