Docker 常用命令

Docker 是一个开源的应用容器引擎,使用 Docker 可以将我们的应用程序和其依赖环境打包到一起进行移植、发布,我们就不需要在一台新的机器上为应用程序去安装、配置所需的依赖包、环境变量等。

1. Docker 组件

在 Docker 主要有以下几部分组成:

  1. Docker 客户端,负责与 Docker 守护进行通信;
  2. Docker 守护进程,负责管理 Docker 镜像和 Docker 容器;
  3. Docker 镜像,负责产生 Docker 容器实例;
  4. Docker 容器,包含了应用程序和其所依赖环境;
  5. Docker Hub,已经制作好了很多镜像

链接:https://hub.docker.com/

2. Docker 安装

# 安装 yum-utils
sudo yum install -y yum-utils
# 配置镜像源, 我们使用的是阿里云的源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
# 安装 Docker
yum install docker-ce docker-ce-cli containerd.io

安装命令执行成功之后,使用下面命令来管理Docker 守护进程:

# 查看 docker 版本
docker version
# 启动 docker 服务
systemctl start docker 
# 关闭 docker 服务
systemctl stop docker
# 重启 docker 服务
systemctl restart docker
# 查看 docker 状态
systemctl status docker
# 设置开机启动
systemctl enable docker

3. Docker 使用

我们通过一个小实验来快速入门 Docker 的使用方法。大致的步骤如下:
0. 查看 Docker 服务运行状态;
1. 查看本地镜像;
2. 从 Docker Hub 拉取基础镜像, 我们此处选择 ubuntu:18.04 镜像;
3. 再次查看本地镜像;
4. 使用 ubuntu:18.04 镜像构建容器,并交互式运行容器;
5. 在容器内部执行 LS 命令;
6. 退出容器;
7. 查看本地容器实例;
8. 再次启动停止的容器;
9. 退出并停止容器.

# 0. 查看 Docker 服务运行状态;
systemctl status docker

# 1. 查看本地镜像;
docker images
"""
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
"""

# 2. 从 Docker Hub 拉取基础镜像, 我们此处选择 ubuntu 镜像;
docker search ubuntu
docker search ubuntu --no-trunc
docker pull ubuntu
"""
Using default tag: latest
latest: Pulling from library/ubuntu
405f018f9d1d: Pull complete
Digest: sha256:b6b83d3c331794420340093eb706a6f152d9c1fa51b262d9bf34594887c2c7ac
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
"""

# 3. 再次查看本地镜像;
docker images
docker image ls
"""
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
ubuntu       latest    27941809078c   9 days ago   77.8MB
"""

# 4. 使用 ubuntu 镜像构建容器,并交互式运行容器,并在容器中执行 LS 命令;
docker run -it ubuntu:latest /bin/bash
"""
root@abcced6d5ee8:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
"""

# 5. 退出容器;
exit
"""
exit
[root@bogon docker]#
"""

# 6. 查看本地容器实例;
docker ps
docker ps -a
"""
CONTAINER ID   IMAGE           COMMAND       CREATED              STATUS                      PORTS     NAMES
abcced6d5ee8   ubuntu:latest   "/bin/bash"   About a minute ago   Exited (0) 35 seconds ago             sad_montalcini
"""

# 7. 再次启动停止的容器;
docker start 容器ID
"""
[root@bogon docker]# docker start abcced6d5ee8
abcced6d5ee8
"""

# 8. 再次进入容器
docker exec -it abcced6d5ee8 /bin/bash
"""
root@abcced6d5ee8:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
"""

# 9. 退出容器, 并停止容器
exit
docker stop 容器ID
"""
[root@bogon docker]# docker ps
CONTAINER ID   IMAGE           COMMAND       CREATED         STATUS         PORTS     NAMES
abcced6d5ee8   ubuntu:latest   "/bin/bash"   9 minutes ago   Up 6 minutes             sad_montalcini
[root@bogon docker]# docker stop abcced6d5ee8
abcced6d5ee8
[root@bogon docker]# docker exec -it abcced6d5ee8 /bin/bash
Error response from daemon: Container abcced6d5ee8e6980f8271d3e78d18d0dff708e377c22c7798006a133ac73559 is not running
"""

4. Docker 镜像

镜像操作主要包括:
1. 查看镜像
2. 搜索镜像
3. 下载镜像
4. 运行镜像
5. 删除镜像
6. 保存镜像
7. 加载镜像

# 1. 查看镜像
docker images             # 查看所有镜像
docker images -q          # 只查看镜像的ID
docker images --no-trunc  # 显示镜像完整信息

# 2. 搜索镜像
docker search 镜像名

# 3. 下载镜像
docker pull 镜像名:版本     # 不指定 TAG, 则默认使用 latest

# 4. 运行镜像
docker run -it 镜像名:版本 程序                # 交互式运行容器
docker run -it --name=标签名 镜像名:版本 程序   # 容器指定名字
docker run -itd 镜像名:版本 程序               # 后台运行容器

# 5. 删除镜像
docker rmi -f 镜像名                   # 删除指定镜像
docker rmi -f 镜像ID                   # 删除指定镜像
docker rmi -f $(docker images -qa)    # 删除所有镜像

# 6. 保存镜像
docker save 镜像名:版本 -o xxx.tar

"""
[root@bogon ~]# docker save alpine:latest -o myalpine.tar
[root@bogon ~]# ls
anaconda-ks.cfg  myalpine.tar
"""

# 7. 加载镜像
docker load -i xxx.tar

"""
[root@bogon ~]# docker load -i myalpine.tar
24302eb7d908: Loading layer [==================================================>]  5.811MB/5.811MB

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
alpine       latest    e66264b98777   3 weeks ago    5.53MB
centos       latest    5d0da3dc9764   9 months ago   231MB
"""

5. Docker 容器

容器操作主要包括:
1. 查看容器
2. 启动容器
3. 停止容器
4. 删除容器
5. 进入容器
6. 容器导出
7. 容器导入

Docker 容器创建时指定的命令会和容器实例绑定,再次启动容器时将会默认执行绑定的命令。

# 1. 查看容器
docker ps       # 查看正在运行的容器实例
docker ps -a    # 查看正在运行或者已停止的容器实例
dr
# 2. 运行容器
docker start 容器ID     # 启动容器
docker restart 容器ID   # 重启容器

# 3. 停止容器
docker stop 容器ID

# 4. 删除容器
docker rm -f 容器ID              # 删除指定容器
docker rm -f $(docker ps -qa)   # 删除所有容器

# 5. 进入容器
# attach 退出终端会导致容器停止
# exec 不会导致容器停止
docker attach -it 容器ID /bin/bash
docker exec -it 容器ID /bin/bash

# 6. 容器导出
docker export 容器ID > xxx.tar

# 7. 容器导入
docker import xxx.tar xxx:tag
未经允许不得转载:一亩三分地 » Docker 常用命令