Docker常用命令大全

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker常用命令


一、Docker基本操作

Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本的CentOS中是不支持更新最新的一些补丁包的(如果非要使用CentOS的话建议最好7.x或以上版本)。


使用yum命令在线安装:

 yum -y install docker


查看Docker的版本:

docker -v


Docker的启用和停止:

启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker帮助文档:docker --help
//PS:systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。


二、Docker镜像操作

Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。


列出镜像:
docker images

在这里插入图片描述

含义:
 REPOSITORY:镜像所在的仓库名称
 TAG:镜像标签
 IMAGE ID:镜像ID
 CREATED:镜像的创建日期(不是获取该镜像的日期)
 SIZE:镜像大小
 这些镜像都是存储在Docker宿主机的/var/lib/docker目录下


运行镜像:
docker run --name 标签名字 –i –t 镜像所在仓库名称 /bin/bash

例如:

docker run --name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash
表明从镜像Ubuntu:12.04启动一个容器,而这个镜像的操作系统就是Ubuntu:12.04。在构建容器时指定仓库的标签为custom_container_name 。


搜索镜像:
docker search 镜像名称

例如

docker search tomcat

在这里插入图片描述

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


拉取镜像
docker pull 镜像名称[:版本号]
# 例如: docker pull centos:7

注意:

镜像仓库: https://hub.docker.com/
目前国内访问docker hub速度上有点尴尬,推荐使用docker Mirror。现有国内提供docker镜像加速服务的商家有不少,下面说一下ustc镜像。

ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。
地址:https://mirrors.ustc.edu.cn/help/

使用ustc镜像步骤:
(1) 编辑该文件:vi /etc/docker/daemon.json

    PS: 如果该文件不存在就手动创建;另外有可能如果没有vim 命令则使用vi命令即可。

(2) 在该文件中输入如下内容:

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

还有本地阿里云的镜像地址,速度更快

{ 
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 
}

(3) 注意:一定要重启docker服务,如果重启docker后无法加速,可以重新启动OS ,然后通过docker pull命令下载镜像 。

service docker restart


删除镜像

方式一:根据仓库的名称(镜像的名称)来删除 还可以使用image_id来进行删除。

删除指定镜像:
docker rmi 镜像ID

方式二:

删除所有镜像:
docker rmi `docker images -q`


三、Docker容器操作

查看容器

查看正在运行容器

docker ps

查看所有的容器(启动过的历史容器)

docker ps –a

查看最后一次运行的容器:

docker ps -l

查看停止的容器

docker ps -f status=exited


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

例如:

创建一个交互式容器并取名为mycentos
docker run -it --name=mycentos centos:7 /bin/bash

创建一个守护式容器
docker run -di --name=mycentos2 centos:7
PS:守护式进程 exit退出时,容器不会停止


登录守护式容器:
docker exec -it  container_name (或者container_id)  /bin/bash
#例如: docker exec -it mycentos2 /bin/bash


退出当前容器:
exit


停止与启动容器

停止正在运行的容器:

docker stop $CONTAINER_NAME/ID
# 例如:docker stop mycentos2

启动已运行过的容器:

docker start $CONTAINER_NAME/ID
#例如:docker start mycentos2


文件拷贝

将文件拷贝到容器内:

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

将文件从容器内拷贝出来:

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


目录挂载(映射)
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器里所对应的目录。
创建容器 添加-v参数 后边为   宿主机目录:容器目录
例如:创建容器 并挂载宿主机目录 到容器中的目录下:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
PS:如果共享的是多级的目录,可能会出现权限不足的提示。需要添加参数--privileged=true来解决挂载的目录没有权限的问题。
docker run -di --privileged=true -v /root/test:/usr/local/test --name=mycentos4 centos:7


查看容器IP地址:

查看容器运行的各种数据

docker inspect 容器名
#例如:docker inspect mycentos2

直接输出IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名
# 例如: docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2


删除容器

删除指定的容器:

docker rm $CONTAINER_ID/NAME
# 这个命令只能删除已经关闭的容器,不能删除正在运行的容器

删除所有的容器:

docker rm `docker ps -a -q`
#或者:
docker rm $(docker ps -aq)


四、部署应用

部署MySQL

拉取MySQL镜像(以5.7版本为例)

docker pull mysql:5.7

创建MySQL容器

docker run -di --name=my_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

进入MySQL容器

docker exec -it pinyougou_mysql /bin/bash

登录mysql

mysql -u root -p

授权允许远程登录

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#其中如果指定远程某个IP登录的话只需要把%换成指定的IP地址即可


tomcat部署

拉取tomcat镜像

docker pull tomcat:7-jre8

创建tomcat容器

docker run -di --name=my_tomcat -p 9100:8080 tomcat:7-jre8


Nginx部署

拉取Nginx镜像

docker pull nginx

创建Nginx容器

docker run -di --name=pinyougou_nginx -p 80:80  nginx 


Redis部署

拉取Redis镜像

docker pull redis

创建Redis容器

docker run -di --name=pinyougou_redis -p 6379:6379 redis

......
==还有很多部署步骤类似就不一个一个写了~==


五、备分与迁移

将容器保存为镜像
docker commit my_nginx mynginx
#my_nginx是容器名称
#mynginx是新的镜像名称
#此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器


镜像备份
docker  save -o mynginx.tar mynginx
#-o 输出到的文件
#执行后,运行ls命令即可看到打成的tar包.


镜像恢复与迁移
docker load -i mynginx.tar
#-i 输入的文件


其它资源:

Docker官网:http://www.docker.com

Docker中文社区:https://www.docker.org.cn/

Docker中文文档:http://www.dockerinfo.net/document

目录
相关文章
|
1月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
333 124
|
4月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
1322 75
|
5月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
4月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
591 0
|
6月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
1095 30
|
6月前
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
158 22
|
6月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
230 16
|
6月前
|
关系型数据库 MySQL Docker
|
6月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
364 5
|
7月前
|
NoSQL 应用服务中间件 Redis
Docker 常用命令整理
Docker 常用命令整理
208 1