Docker常用命令大全

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
22天前
|
Linux 持续交付 Go
Docker常用命令总结
这篇文章总结了Docker的基本操作,包括Docker的简介、镜像、容器和仓库的概念。介绍了如何在CentOS上安装和卸载Docker,以及常用Docker命令,如查看和删除镜像、运行和管理容器、文件拷贝和日志查看。还提供了一个curl命令示例来测试本地容器服务。完整内容请参考原文链接:[Docker命令总结](https://blog.csdn.net/javayoungcoolboy/article/details/134975314)。
|
1天前
|
关系型数据库 应用服务中间件 nginx
docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令
docker基础,docker安装mysql,docker安装Nginx,docker安装mq,docker基础命令
|
1天前
|
Docker 容器
docker命令大全
docker命令大全
|
7天前
|
Linux Docker 容器
蓝易云 - 【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)
以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。
81 0
|
8天前
|
流计算 Docker 容器
在docker中玩flink时候记录一些组合命令
在docker中玩flink时候记录一些组合命令
11 0
|
22天前
|
运维 Linux Shell
Docker详解(七)——Docker辅助命令
Docker详解(七)——Docker辅助命令
30 4
|
22天前
|
存储 Shell Docker
docker 部署单节点的etcd以及 常用使用命令
在 Docker 中部署单节点的 etcd 以及一些常用命令的操作,可以按照以下步骤进行: ## 一、部署单节点 etcd 1. **拉取 etcd Docker 镜像**:您可以从 Docker Hub 拉取 etcd 的官方镜像。 ```shell docker pull quay.io/coreos/etcd:latest ``` 2. **启动 etcd 容器**:使用 `docker run` 命令来启动 etcd 容器。以下是一个示例命令,其中将容器的 2379 端口映射到主机的 2379 端口: ```shell docker run -d \
|
22天前
|
NoSQL Linux Shell
2.Docker常用命令(linux)
2.Docker常用命令(linux)
|
22天前
|
存储 运维 Linux
Docker详解(六)——Docker高级控制命令
Docker详解(六)——Docker高级控制命令
24 2
|
22天前
|
运维 监控 Linux
【专栏】Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用
【4月更文挑战第28天】本文介绍了Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用。通过基础和高级用法示例,如列出所有容器、搜索特定镜像、监控资源使用等,帮助读者理解和提升容器管理效率。对于Linux运维工程师,掌握`docker ps`是必备技能。