0、设置Docker镜像加速器

详见文章:Docker设置ustc的镜像源(镜像加速器)


1、Docker的启动与停止

注: systemctl 命令是系统服务管理器指令。

(1)启动docker(守护进程):

[root@localhost ~]# systemctl start docker

(2)停止docker:

[root@localhost ~]# systemctl stop docker

(3)重启docker:

[root@localhost ~]# systemctl restart docker

(4)查看docker状态:

[root@localhost ~]# systemctl status docker

(5)开机启动:

[root@localhost ~]# systemctl enable docker

(6)查看docker概要信息:

[root@localhost ~]# docker info

如下:

[root@localhost java]# docker info
Client:Debug Mode: falseServer:Containers: 1Running: 0Paused: 0Stopped: 1Images: 1Server Version: 19.03.9Storage Driver: overlay2Backing Filesystem: xfsSupports d_type: trueNative Overlay Diff: trueLogging Driver: json-fileCgroup Driver: cgroupfsPlugins:Volume: localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: runcDefault Runtime: runcInit Binary: docker-initcontainerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175runc version: dc9208a3303feef5b3839f4323d9beb36df0a9ddinit version: fec3683Security Options:seccompProfile: defaultKernel Version: 3.10.0-1127.el7.x86_64Operating System: CentOS Linux 7 (Core)OSType: linuxArchitecture: x86_64CPUs: 1Total Memory: 972.3MiBName: localhost.localdomainID: BGB3:WJY2:5HV7:D65Q:BJHJ:3P7Z:T7NI:3H3Y:VZ4P:RPFJ:LYJ3:PTXBDocker Root Dir: /var/lib/dockerDebug Mode: falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries:127.0.0.0/8Live Restore Enabled: false[root@localhost java]#

(7)查看docker帮助文档

[root@localhost ~]# docker --help

(8)查看已启动的docker信息

[root@localhost ~]# docker ps

注:具体可参考本篇博文相关小节:3、容器(Container)相关命令



2、 镜像(Image)相关命令

2.1 查看镜像

[root@localhost ~]# docker images
或
[root@localhost ~]# docker image ls

如下图:

说明:

REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期,也不是安装docker的日期)
SIZE:镜像大小

注: 这些镜像都是存储在Docker宿主机的 /var/lib/docker 目录下。


2.2 搜索镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个 httpd 的镜像来作为我们的 web 服务。我们可以通过 docker search 命令搜索 镜像名称 来寻找适合我们的镜像。

格式:

docker search 镜像名称

如,搜索mysql:

[root@localhost /]# docker search mysql

说明:

NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否 docker 官方发布
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的


2.3 拉取镜像

拉取镜像就是从中央仓库中下载镜像到本地。

格式:

docker pull 镜像名称

docker pull 镜像名称:版本

例如,我要下载 mysql 镜像:

拉取最新版本:

[root@localhost ~]# docker pull mysql

拉取指定版本:

[root@localhost ~]# docker pull mysql:5.7


2.4 删除镜像

(1)按镜像ID删除镜像

格式:

docker rmi 镜像ID

如,删除mysql镜像:

[root@localhost docker]# docker images
REPOSITORY       TAG        IMAGE ID         CREATED           SIZE
mysql            5.7        1b12f2e9257b     3 weeks ago       448MB
hello-world      latest     bf756fb1ae65     10 months ago     13.3kB
[root@localhost docker]#
[root@localhost docker]# docker rmi 1b12f2e9257b

(2)删除所有镜像(★★★★★)

docker rmi `docker images -q`

3、容器(Container)相关命令

3.0 查容器内目录或文件列表(需登录容器,在容器内操作)**

[root@localhost ~]# dir
或
[root@localhost ~]# dir -l
或
[root@localhost ~]# dir 目录名

如,登录容器my_nginx内,查看文件或目录列表:

[root@localhost webapps]# docker exec -it my_nginx /bin/bash
root@4925395ef0eb:/#
root@4925395ef0eb:/# ll
bash: ll: command not found
root@4925395ef0eb:/# dir
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@4925395ef0eb:/#

3.1 查看容器列表

语法:

docker ps [OPTIONS]

OPTIONS说明:

-a : 显示所有的容器,包括未运行的。
-f: 根据条件过滤显示的内容。
--format : 指定返回值的模板文件。
-l : 显示最近创建的容器。
-n: 列出最近创建的n个容器。
--no-trunc :不截断输出。
-q : 静默模式,只显示容器编号。
-s : 显示总的文件大小。

(1)查看正在运行的容器

[root@localhost ~]# docker ps

(2)查看所有容器

[root@localhost ~]# docker ps –a

(3)查看最后一次运行的容器

[root@localhost ~]# docker ps –l

(4)查看停止的容器

[root@localhost ~]# docker ps -f status=exited

3.2 创建与启动容器

创建容器命令:docker run 参数

常用的参数说明:

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


3.2.1(第一种)交互式方式创建容器

格式:

docker run -it --name=容器名称(起名字) 镜像名称:标签 /bin/bash

查看镜像列表:

(1)创建my_mysql容器(创建并进入容器)

[root@localhost docker]# docker run -it --name=my_mysql mysql:5.7 /bin/bash
root@48b6a760b4df:/#

(2)退出当前容器(exit

(3)查看容器列表

通过ps命令查看可以启动的容器:

[root@localhost ~]# docker ps -a

如下图,my_mysql容器已经创建成功:


3.2.2(第二种)守护式方式创建容器

格式:

docker run -di --name=容器名称(起名字) 镜像名称:标签 /bin/bash

(1)创建my_mysql2容器

[root@localhost docker]# docker run -itd --name=my_mysql2 mysql:5.7 /bin/bash

(2)登录容器

格式:

docker exec -it 容器名称(或者容器ID) /bin/bash

登录my_mysql2容器:

[root@localhost docker]# docker exec -it my_mysql2 /bin/bash
root@0267de48e9f2:/# exit
exit
[root@localhost docker]#

3.3 停止与启动容器

(1)停止容器:

docker stop 容器名称(或者容器ID)

如,停止my_mysql容器:

[root@localhost ~]# docker stop my_mysql

(2)启动容器:

docker start 容器名称(或者容器ID)

如,启动my_mysql容器:

[root@localhost ~]# docker start my_mysql

3.4 删除容器

docker rm 容器名称(或容器ID)

如,删除my_mysql容器:

[root@localhost ~]# docker rm my_mysql

3.5 文件拷贝(宿主系统文件 ⇄ 容器内文件)

可使用 docker cp ... 命令进行文件拷贝操作。

(1)将宿主系统的文件/目录 ➨ docker容器内目录

格式:

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

如,复制 /user/test/test.txtmy_mysql2容器的/usr/local目录下:

[root@localhost ~]# docker cp /user/test/test.txt my_mysql2:/usr/local

查看my_mysql2 容器内复制过来的文件:

[root@localhost ~]# docker exec -it my_mysql2 /bin/bash
root@0267de48e9f2:/# dir /usr/local
bin  etc  games  include  lib  man  sbin  share  src  test.txt
root@0267de48e9f2:/#
root@0267de48e9f2:/# cat /usr/local/test.txt
测试文件拷贝copy
root@0267de48e9f2:/#
root@0267de48e9f2:/# exit
exit
[root@localhost ~]#

(2)将docker容器内的文件 ➨ 宿主系统目录

格式:

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

如,复制 my_mysql2容器的/usr/local/test.txt文件 宿主系统的 /user/test 目录下,并改名为test2.txt

[root@localhost test]# docker cp my_mysql2:/usr/local/test.txt /user/test/test2.txt
[root@localhost test]# ll
总用量 8
-rw-r--r--. 1 root root 23 11月 18 00:30 test2.txt
-rw-r--r--. 1 root root 23 11月 18 00:30 test.txt
[root@localhost test]#

3.6 目录挂载(创建容器时

说明: 我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主系统某个目录的文件从而去影响容器(避免进入容器修改)。

格式:

docker run -di -v 宿主机目录:容器目录 --name=新生成的容器名称 镜像名:标签 /bin/bash

如,创建容器 my_mysql3 ,并将宿主机目录/user/test 映射容器目录/usr/local/mytest(目录会自动创建) :

[root@localhost ~]# docker run -di -v /user/test:/usr/local/mytest --name=my_mysql3 mysql:5.7 /bin/bash

查看映射情况(启动并进入容器my_mysql3内部):

[root@localhost test]# docker start my_mysql3
my_mysql3
[root@localhost test]# docker exec -it my_mysql3 /bin/bash
root@c89239fa89a7:/#
root@c89239fa89a7:/# dir /usr/local/mytest
test.txt  test2.txt  test3.txt
root@c89239fa89a7:/#
root@c89239fa89a7:/# exit
exit
[root@localhost test]#

如上,查看容器目录my_mysql3:/usr/local/mytest,可以直接看到宿主系统目录/user/test下的所有文件,及映射成功。

【注】:
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题


3.7 查看容器运行数据& 直接查看容器IP地址

我们可以通过以下命令查看容器运行的各种数据

(1)查看容器所有运行数据

格式:

docker inspect 容器名称(容器ID)

如,查看容器my_mysql3的运行数据(太多,这里不展示了):

[root@localhost test]# docker inspect my_mysql3

(2)直接查看容器IP地址

格式:

docker inspect --format=’{{.NetworkSettings.IPAddress}}’ 容器名称(容器ID)

如,查看容器my_mysql3的IP地址:

[root@localhost test]# docker inspect --format='{{.NetworkSettings.IPAddress}}' my_mysql3
172.17.0.3
[root@localhost test]#

注: 如若想直接获取其他运行数据,可参考docker inspect 容器名称(容器ID)命令的具体数据,直接修改docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID){{}} 里面的对应属性项即可。


4、Docker备份与恢复

4.1 容器保存为镜像

我们可以通过 docker commit ... 命令将容器保存为新镜像。

格式:

docker commit [OPTIONS] 容器名称(容器ID) [REPOSITORY[:TAG]]

OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。


【例1】:

如,将容器my_mysql保存为新镜像my_mysql2

[root@localhost ~]# docker commit my_mysql my_mysql2
sha256:8b474f1f50e6f5e2c31beb328db91acd46e25a37963e7d45c5beb48b64d3418c
[root@localhost ~]#

【例2】:

如,将容器my_mysql保存为新镜像my_mysql3

[root@localhost ~]# docker commit -a "zhangxiaohu" -m "my copy mysql" my_mysql  my_mysql3:v3
sha256:0358acf99cccfd81f7ad2b439cf54770c1a6ec0ba58929047f947fdc99d85de5
[root@localhost ~]#

4.2 镜像备份(docker save)

可以使用docker save 命令将指定镜像保存成 .tar 文件。

语法:

docker save [OPTIONS] 要生成的备份文件名.tar [IMAGE…]

OPTIONS 说明:
-o :输出到的文件。

如,将镜像 my_mysql3 生成 my_mysql3_v3.tar 备份文件:

[root@localhost ~]# docker save -o my_mysql3_v3.tar my_mysql3


4.3 镜像恢复(docker load)

(1)首先删除旧镜像:my_mysql3

[root@localhost ~]# docker rmi my_mysql3:v3

(2)然后使用 docker load 命令恢复镜像

注: docker load 只能恢复 使用 docker save 命令导出的镜像。

语法:

docker load [OPTIONS]

OPTIONS 说明:
--input , -i:指定导入的文件,代替 STDIN。
--quiet , -q :精简输出信息。


如,恢复备份的my_mysql3_v3.tar文件为镜像:

[root@localhost ~]# docker load -i /root/my_mysql3_v3.tar


Docker常用命令(启动、镜像相关、容器相关、文件拷贝、目录挂载、查看容器IP地址、Docker备份与恢复)相关推荐

  1. Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit

    相关阅读: Docker(一):Docker的安装与常用命令 Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit Docker(三):Docker镜像导入与导 ...

  2. docker常用命令及镜像的制作与上传

    安装docker docker安装 docker加速 docker-ce的配置文件是/etc/docker/daemon.json,此文件默认不存在,需要我们手动创建并进行配置,而docker的加速就 ...

  3. docker删除镜像命令_第三章 Docker常用命令之镜像命令

    3.2 镜像命令: docker images 列出本机所有镜像docker images -a 列出本机所有镜像,包含中间映像层docker images -q 列出本机所有镜像的iddocker ...

  4. 【云原生 • Docker】Docker常用命令总结(值得收藏)

    上一篇文章大家应该了解和搭建了Docker环境,Docker 是一个开源的应用容器引擎. 直通车: [云原生 • Docker]初识Docker和Docker的坏境搭建(保姆级教学) 作为一名开发或者 ...

  5. docker常用命令_docker常用命令整理

    docker常用命令整理 代码狂魔 • 5 天前 • 技术积累 • 14 • 0 前面已经把docker是什么和 docker怎么安装已经写了,现在我将常用命令做一个整理,方便日后查阅 常用命令 do ...

  6. Docker常用命令操作——1)、镜像操作;2)、容器操作

    Docker常用命令&操作 1).镜像操作 https://hub.docker.com/ 操作 命令 说明 检索 docker search 关键字 eg:docker search red ...

  7. Docker 学习笔记(Docker 架构 / 镜像 / 容器 / 常用命令 / Dockerfile / 镜像仓库)

    Docker 1. Docker 入门 1.1 Docker 是什么 1.2 Docker 和 虚拟机 1.3 镜像 容器 仓库 1.4 Docker 架构 1.5 Docker 安装 1.6 doc ...

  8. centos常用命令_二、Docker镜像是什么?Docker常用命令

       科技奇闻    关注让你我共同进步 文章来源:CSDN 作者:IronmanJay Docker常用命令 1.帮助命令 docker version #查看版本号docker info #显示D ...

  9. docker 常用命令(二)——容器命令

    docker 常用命令(二) # 容器命令 注:有了镜像才可以创建并启动容器:本文在centos7.9下创建centos:latest 下载最新版centos: docker pull centos ...

最新文章

  1. Codeforces Round #256 (Div. 2) D Multiplication Table
  2. elasticsearch 第二篇(配置篇)
  3. 从内涵段子到皮皮虾,娱乐App为何不能一鱼两吃?
  4. Android打包的那些事
  5. php抓取页面400错误
  6. mapreduce分组统计_Mongodb的分组统计MapReduce
  7. GPU Gems1 - 1 用物理模型进行高效的水模拟(Effective Water Simulation from Physical Models)
  8. 异常处理记录: Servlet class X is not a javax.servlet.Servlet
  9. Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程
  10. 苹果Mac电脑配置flutter开发环境
  11. 关于elastic-job 分片与线程问题
  12. ajax.net 的使用方法--摘自网上
  13. 轻量级协作机器人到仿人机器人的关键技术演进及生态共建
  14. 《分形艺术,当科学嫁给了艺术》作者:林晨 风达
  15. Markdown文件的标题分级自动编号——Typora
  16. Android Orientation Sensor(方向传感器)详解与应用
  17. 无法通过 Internet 连接到 Visual Paradigm 的服务器
  18. 【BJOI 2019】排兵布阵
  19. PyCharm4注册码--软件安装
  20. Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution----视频超分辨

热门文章

  1. pg_repack 处理表和索引的膨胀
  2. centos添加硬盘
  3. 运维派 企业面试题3 为上题中的 十个随机字母_test.html 文件 更名
  4. android课程设计健身,健身软件课程设计.doc
  5. 余淼杰老师 经济学原理复习笔记(微观)
  6. 2021年4月2日 星期五 农历二月 阴
  7. nexmo发送成功,但没有收到短信
  8. 茶艺概述20210411
  9. android基础的博客,【复习】Android基础
  10. 北京博物馆十大镇馆之宝