Docker——docker命令操作全集

时间:2021-05-23 01:21:08


摘要

本博文主要是介绍docker的实际的操作的命令,同时展示docker中具体的操作。docker作为容器的重要的编排工具,同时也是在面试中重要的考核标准。改工具的学习是的软件开发和软件后端的重要一个部分,为微服务的开发打下一个基础。同时后面将详细介绍的docker的原理。

Docker——docker命令操作全集

一、docker的安装(linux)

1.1 使用官方安装脚本自动安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

 也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

1.2 通过仓库的方式进行安装

#更新 apt 包索引
sudo apt-get update

#添加 Docker 的官方 GPG 密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

#更新 apt 包索引
sudo apt-get update

#安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io

#测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功:
sudo docker run hello-world

#删除安装包
sudo apt-get purge docker-ce

二、docker的镜像源的修改

由于docker默认的源为国外官方源,下载速度较慢,所以在学习和使用中可改为国内的镜像源,这样速度会提高狠多。 

国内Docker镜像仓库名称

链接URL

Docker 官方中国区

https://registry.docker-cn.com

网易

http://hub-mirror.c.163.com

中国科学技术大学

https://docker.mirrors.ustc.edu.cn

阿里云

https://pee6w651.mirror.aliyuncs.com

3.1 辑 /etc/docker/daemon.json

vi /etc/docker/daemon.json

#添加如下网易镜像源
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

3.2 编辑/etc/sysconfig/docker

在OPTIONS变量后追加参数  --registry-mirror=镜像源地址

vi /etc/sysconfig/docker

#编辑OPTIONS,添加中国科技大学的镜像源
OPTIONS='--selinux-enabled --log-driver=journald --registry mirror=https://docker.mirrors.ustc.edu.cn'

3.3 编辑/etc/default/docker

添加DOCKER_OPTS="--registry-mirror=镜像源"

vi /etc/default/docker

#指定镜像源为阿里的镜像源
DOCKER_OPTS="--registry-mirror=https://pee6w651.mirror.aliyuncs.com"
其他:docker pull拉取镜像时也可以指定仓库下载地址

3.4 修改/etc/docker/daemon.json

如果没有先建一个即可

sudo vim /etc/docker/daemon.json

修改配置文件

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

使配置文件生效

sudo systemctl daemon-reload

重启Docker

sudo service docker restart

测试配置是否成功

docker search nginx

Docker——docker命令操作全集

三、docker常用命令

3.1 docker启动与停止

#启动:
systemctl start docker

#重启docker服务
systemctl restart docker或者是sudo service docker restart

#关闭docker
docker service docker stop或者是docker systemctl stop docker

#启动docker镜像
docker start 应用名称


#设置开机启动
sudo systemctl enable docker

#查看docker状态
sudo systemctl status docker

#查看docker内容器的运行状态
sudo docker stats

#查看docker概要信息
sudo docker info

#查看docker 帮助文档
sudo docker --help

3.2 镜像的管理命令

# 查看镜像

docker images

# 搜索镜像

docker search 镜像名称

# 拉取镜像

docker pull 镜像名称

# 删除单个镜像

docker rmi 镜像ID

# 删除多个镜像

docker rmi 镜像ID 镜像ID 镜像ID

3.3 容器的管理命令

# 查看正在运行的容器

docker ps

# 查看停止的容器

docker ps -f status=exited

# 查看所有容器(包括运行和停止)。

docker ps -a

# 创建与启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

    -i:表示运行容器;
    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端;
    --name:为创建的容器命名;
    -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个 -v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上;
    -d:在 run 后面加上 -d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加 -i -t 两个参数,创建容器后就会自动进容器里);
    -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口映射。
    -P:随机使用宿主机的可用端口与容器内暴露的端口映射。

# 创建并进入容器

docker run -it --name 容器名称 镜像名称:标签 /bin/bash

# 退出当前容器

exit

# 守护式方式创建容器

docker run -di --name 容器名称 镜像名称:标签

# 登录守护式容器方式

docker exec -it 容器名称|容器ID /bin/bash

# 停止容器

docker stop 容器名称|容器ID

# 启动容器

docker start 容器名称|容器ID

# 文件拷贝

docker cp 需要拷贝的文件或目录 容器名称:容器目录

# 也可以将文件从容器内拷贝出来。

docker cp 容器名称:容器目录 需要拷贝的文件或目录

# 目录挂载(容器数据卷操作)

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7

# 多目录挂载

docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

# 匿名挂载

docker run -di -v /usr/local/data --name centos7-02 centos:7

# 查看 volume 数据卷信息

docker volume ls

# 匿名挂载
docker run -di -v docker_centos_data:/usr/local/data --name centos7-03 centos:7

# 查看 volume 数据卷信息
docker volume ls

# 指定目录挂载

docker run -di -v /mydata/docker_centos/data:/usr/local/data --name centos7-01 centos:7

# 多目录挂载

docker run -di -v /宿主机目录:/容器目录 -v /宿主机目录2:/容器目录2 镜像名

# 只读。只能通过修改宿主机内容实现对容器的数据管理。

docker run -it -v /宿主机目录:/容器目录:ro 镜像名

# 读写,默认。宿主机和容器可以双向操作数据。

docker run -it -v /宿主机目录:/容器目录:rw 镜像名

# 查看容器 IP 地址

docker inspect 容器名称|容器ID

#删除容器

# 删除指定容器

docker rm 容器名称|容器ID

# 删除多个容器

docker rm 容器名称|容器ID 容器名称|容器ID

四、镜像的备份与恢复迁移命令

# docker save 将指定镜像保存成 tar 归档文件。

docker save [OPTIONS] IMAGE [IMAGE...]
docker save -o /root/mycentos7.tar mycentos:7

# 使用 docker load 导入 docker save 命令导出的镜像归档文件。

docker load [OPTIONS]
docker load -i mycentos7.tar

# 镜像迁移

镜像迁移同时涉及到了上面两个操作,备份和恢复。 我们可以将任何一个 Docker 镜像从一台机器迁移到另一台机器。在迁移过程中,首先我们要把容器构建为 Docker 镜像。然后, 该 Docker 镜像被作为 tar 包文件保存到本地。此时只需要拷贝或移动该镜像到我们想要的机器上,恢复该镜像并运行容器即可。

五、Dokcer 的网络管理命令

# docker 默认网络

docker network ls

# 通过 docker network create 命令可以创建自定义网络模式,创建一个基于 bridge 网络模式的自定义网络模式 custom_network

docker network create custom_network

# 通过自定义网络模式 custom_network 创建容器:

docker run -di --name bbox05 --net custom_network busybox

# 通过 docker network connect 网络名称 容器名称 为容器连接新的网络模式

docker network connect bridge bbox05

# 通过 docker network disconnect 网络名称 容器名称 命令断开网络

docker network disconnect custom_network bbox05

# 移除网络

docker network rm custom_network

# 容器间网络通信

docker run -di --name default_bbox01 busybox

docker run -di --name default_bbox02 busybox

博文参考

https://www.exception.site/docker

Docker Dockerfile | 菜鸟教程