一些Docker常用的基本指令

一、Docker安装

1、安装依赖
apt-get install ca-certificates curl gnupg lsb-release
2、安装证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
3、写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
4、安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io

二、基本操作

1、启动docker
systemctl start docker
2、重启docker
service docker restart
3、测试安装是否成功
sudo docker run hello-world 

若出现"Hello from Docker!"则代表安装成功。

4、查看当前docker加载的镜像
sudo docker images
sudo docker images -a // 显示所有镜像,包括已删除的镜像
5、查看当前docker运行的容器
sudo docker ps
sudo docker ps -a // 显示所有容器,包括未运行的容器
6、运行容器
sudo docker start container_id
7、停止容器
sudo docker stop contrainer_id
// 删除容器前必须向停止容器
8、删除镜像或容器
// 若镜像已在容器中运行,则无论容器当前是否运行中,都要先删除容器再删除镜像
sudo docker rm container_id
sudo docker rmi image_id
9、给USER用户添加docker权限(免sudo运行docker指令)
// 创建docker组
sudo groupadd docker

// 将当前用户添加到docker组
sudo gpasswd -a ${USER} docker
// 或者这条指令
sudo usermod -aG docker $USER

// 重启系统后即可以普通用户运行docker指令,若不想重启系统,可尝试以下任一方法
// 1、重启docker服务
sudo service docker restart
// 2、更新并激活组权限
newgrp docker

// 验证是否成功
docker run hello-world
// 若仍出现权限错误,建议重启系统

// 查看docker用户组及成员
cat /etc/group | grep docker

三、自定义生成及保存镜像

1、生成自定义镜像

在项目根目录创建名为Dockerfile的文件,此文件包含了一系列用于构建镜像的指令。
Dockerfile文件主要包含以下内容:

# 使用基础镜像,作为镜像的系统基础,根据项目运行环境而定
FROM ubuntu::20.04

# 环境变量设置以非交互方式配置时区,则在配置时区时无需用户介入
ENV DEBIAN_FRONTEND=noninteractive

# 设置工作目录,此目录是执行后续指令的当前目录,
#比如后续的运行指令等会相对于此目录进行操作(以下目录仅作为说明示例使用)
WORKDIR /usr/src/app

# 复制代码到容器中的指定目录,命令之后的第一个参数是待复制的代码目录,
#第一个参数使用.符号则说明复制本文件所在目录下的所有内容,
#第二个参数是代码复制的目标目录
COPY . /usr/src/app

# 安装项目依赖,RUN是构建镜像时执行指令的命令,多条指令可以编写多个RUN,
#但最好用&&在一条指令中连续执行多个命令,避免Docker层数堆叠徒增容量大小;
#最后一条rm相关命令用于删除update时生成的缓存文件
RUN apt-get update && apt-get install -y \
    gcc \
    g++ \
    build-essential \
    ***** \
    && rm -rf /var/lib/apt/lists/*

# 定义容器启动时自动运行的命令,比如希望容器启动时自动运行的脚本文件等,
#需要写明可执行文件的完整路径
CMD ["./run_this_cmd"]

文件编写完成后,在终端中进入文件所在目录,使用以下命令构建自定义镜像

docker build -t your_image .

其中,your_image是自定义镜像的名称,自行命名

2、运行自定义镜像

自定义镜像构建完成后,先查看当前docker中存在的镜像,根据要运行的镜像的ID,使用以下命令使其在Docker中运行:

// 获取当前存在的镜像信息,获得要运行的镜像的ID(即下一条指令的ID_from_your_image)
docker images

// 根据ID,以交互方式运行指定的镜像
docker run -it ID_from_your_image /bin/bash

从新的终端进入正在运行的容器可使用以下命令:

// 获取当前运行的容器信息,获得运行目标镜像的容器ID(即下一条指令的ID_from_your_container
docker ps

// 根据容器ID,以交互方式进入正在运行的容器
docker exec -it ID_from_your_container /bin/bash

在容器中可与普通的系统一样进行项目开发,开发完成后可以将当前配置好的环境和项目打包成自定义镜像文件供他人或其他平台使用。

3、提交自定义镜像的修改

在容器中开发完成后,输入exit退出当前容器,然后使用以下指令提交修改:

docker commit ID_from_your_container new_name:v1.1

其中,new_name是新的镜像名称,v1.1为tag名称
要注意的是,在docker中commit会增加层数,即便开发过程中有文件删减操作,镜像大小也有可能不降反增。

4、将自定义镜像保存为文件

将自定义镜像保存为文件就能在不同平台上便捷地传输和使用,避免重复配置环境等操作
在上一步提交修改后,使用以指令保存镜像文件:

docker save -o your_name.img new_name:v1.1

其中,your_name.img是生成的镜像文件的名称,文件名和扩展名均能自行指定,扩展名通常使用.img或.tar较为便捷。new_name:v1.1是上一步中保存的镜像名称和tag名称,用于指定要保存成文件的镜像。

5、导入自定义镜像文件到docker

以上一步生成的镜像文件为例,使用以下指令可在当前环境运行的docker中导入新的镜像:

docker load -i your_name.img

导入完成后,查看当前docker中存在的镜像,再使用运行镜像的指令即可进入容器进行开发。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值