Docker 命令集合

Docker 安装

  • 使用脚本自动安装 Docker

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS系统上可以使用这套脚本安装:

// 使用脚本自动化安装Docker
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
  • 手动安装 Docker

首先安装 Docker 必要依赖包:

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo:

$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

用 yum 安装 Docker:

$ yum install -y docker-ce

直接yum安装,安装成功后查看版本:

$ docker -v
Docker version 18.09.5, build e8ff056

设置开机启动:

$ chkconfig docker on 或 sudo systemctl enable docker

启动docker:

$ sudo service docker start 或 sudo systemctl start docker

  • 配置 Docker

因为国内访问 Docker Hub 较慢, 可以使用腾讯云提供的国内镜像源, 加速访问 Docker Hub,
依次执行以下命令:

// 配置腾讯云镜像加速器
$ echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
// 重载配置文件 
$ sudo systemctl daemon-reload
// 重启 Docker
$ sudo service docker restart 或 sudo systemctl restart docker

// 配置DaoCloud镜像加速器
$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://37bb3af1.m.daocloud.io`
$ sudo systemctl restart docker
  • 运行hello-world 测试Docker
$ sudo docker run hello-world

Docker 卸载

  • 卸载Docker
// 卸载 docker
$ sudo yum remove docker-ce
  • 删除镜像、容器、数据卷和用户自定义文件

卸载不会自动删除主机上的镜像、容器、数据卷或用户自定义文件,从主机磁盘上传所有镜像、容器、数据卷:

// 移除 docker 文件夹
$ sudo rm -rf /var/lib/docker

Docker 运行容器

下载镜像:

// 拉取 docker 镜像
$ docker pull centos

查看镜像列表

$ docker images

生成一个 centos 镜像为模板的容器并使用 bash shell:

// 生成一个 centos 镜像的容器,并进入容器内部
$ docker run -it centos /bin/bash

生成环境下,通常会通过docker run -d命令运行应用容器,例:

$ docker run -d --restart=always --name [AppName] -p 5000:5000 [ImageName]

说明:

  • -d:表示会将容器作为服务启动,不需要终端交互
  • --name:指定容器名称
  • --restart:是一个面向生产环境的参数,用来指定容器非正常退出时的重启策略,always表示始终重新启动容器

退出容器

$ exit

查看容器列表

// 查看所有容器
$ docker ps -a 

// 查看正在运行的容器
$ docker ps

保存容器

// 查找所有容器信息,获取容器的ID
$ docker ps

// 保存镜像
$ docker commit -m="备注" [CONTAINER ID](容器ID) [IMAGE NAME](镜像名称)

进入已存在的容器

// 进入容器终端并且的保留为容器终端的输入形式
$ docker exec -it [CONTAINER ID](容器ID) bash

Docker 查看容器日志

通过docker logs命令可以查看容器的日志,命令格式:

$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

查看最后100行日志

$ docker logs -f -t --since="2019-05-05" --tail=100 [CONTAINER ID](容器ID)

查看最近30分钟的日志

$ docker logs --since 30m --tail=100 [CONTAINER ID](容器ID)

查看某时间段日志

$ docker logs -t --since="2019-05-05T00:00:00" --until "2019-05-05T12:00:00" [CONTAINER ID](容器ID)

Dockerfile 构建镜像

通过Dockerfile构建Docker镜像,在程序根目录创建Dockerfile文件,并编辑:

// FROM  指定以microsoft/dotnet:latest镜像为模板构建镜像
FROM microsoft/dotnet:latest
// WORKDIR 指定工作目录
WORKDIR /app
// COPY 赋值当前目录(其中.即代表当前目录)到容器中的/app目录下
COPY . /app
// RUN 指定容器中执行的命令
RUN dotnet restore
// EXPOSE 指定容器暴露的端口号
EXPOSE 5000
// ENV 指定环境参数,下面命令用来告诉.NETCore项目在所有网络接口上监听5000端口
ENV ASPNETCORE_URLS http://*:5000
// ENTRYPOINT 设置容器启动时要执行的命令,参数--urls,解决IPv6 不能绑定的问题
ENTRYPOINT ["dotnet","run","--no-restore","--urls","http://0.0.0.0:5000"]
原文地址:https://www.cnblogs.com/ICanSoft/p/11653438.html