Docker常用命令大全

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 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
目录
相关文章
|
29天前
|
安全 Docker 容器
|
29天前
|
网络安全 数据安全/隐私保护 Docker
|
28天前
|
存储 监控 安全
|
2月前
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
|
28天前
|
存储 关系型数据库 MySQL
|
1月前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
892 1
|
1月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
135 0
|
1月前
|
Linux 网络安全 Docker
安装后无法使用 Docker 命令
【10月更文挑战第3天】
200 2
|
1月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
|
1月前
|
运维 数据库 开发者
docker回顾--docker compose详细解释,安装,与常用命令
docker回顾--docker compose详细解释,安装,与常用命令
118 1
下一篇
无影云桌面