文章目录
一:docker的镜像操作
1:搜索镜像
格式:docker search 服务名
[root@server1 ~]# docker search nginx
name表示镜像名字
DESCRIPTION 表示该镜像的功能
STARS表示下载热度
2:下载镜像
docker commit [选项] 容器ID/名称 仓库名称:[标签]
-m 说明信息
-a 作者信息
-p 生成过程中停止容器的运行
[root@server1 ~]# docker pull centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:0f4ec88e21daf75124b8a9e5ca03c37a5e937e0e108a255d890492430789b60e
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
3:查看已下载的镜像
[root@server1 ~]# docker images
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID号
SIZE 镜像大小
4:获取镜像的详细信息
格式:docker inspect 镜像ID号
docker inspect 名字
[root@server1 ~]# docker inspect 8326be82abe6
5:添加镜像标签
[root@server1 ~]# docker tag nginx:latest nginx:web
6:删除镜像
格式:docker rmi 仓库名:TAG标签
[root@server1 ~]# docker rmi nginx:latest
#在设置别名的情况下删除id号是不行的
[root@server1 ~]# docker rmi bc9a0695f571
Error response from daemon: conflict: unable to delete bc9a0695f571 (must be forced) - image is referenced in multiple repositories
7:导出镜像
格式:docker save -o 文件名 镜像名
[root@server1 bak]# docker save -o nginx nginx:latest
8:载入镜像
[root@server1 bak]# docker load < ngin
9:上传镜像到公有仓库(必须要有docker官方账号,且创建公有仓库
//登录
docker login
Username: docker
password:
Emall: xxx@xxx. com #输入账号、密码
//上传
docker push 镜像名:标签名(一般公司使用私有仓库)
二:容器的操做
1:创建容器(创建前必须有该镜像)
格式:docker create -it 镜像名 运行程序
[root@localhost abc]# docker create -it nginx:latest /bin/bash
-i 指容器的标准输入保持打开
-t 指Docker分配一个伪终端
[root@server1 bak]# docker create -it nginx:latest /bin/bash
5f34cac6900f04caad155ef332101ce1ca7ef21e1e5f85fd825b3faf8058ad43
2:查看容器运行状态
状态 | 作用 |
---|---|
created | 已创建 |
restarting | 重启中 |
running | 运行中 |
removing | 迁移中 |
paused | 暂停 |
exited | 停止 |
dead | 死亡 |
[root@server1 bak]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
5f34cac6900f nginx:latest "/docker-entrypoint.…" 26 seconds ago Created
[root@server1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5f34cac6900f nginx:latest "/docker-entrypoint.…" 7 minutes ago Created admiring_brown
3:开启容器,关闭容器
格式:docker start 容器ID号
[root@server1 ~]# docker start af255575064f
格式:docker stop 容器ID号
[root@server1 ~]# docker stop af255575064f
[root@server1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5f34cac6900f nginx:latest "/docker-entrypoint.…" 7 minutes ago Created admiring_brown
[root@server1 ~]# docker start 5f34cac6900f
5f34cac6900f
[root@server1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5f34cac6900f nginx:latest "/docker-entrypoint.…" 11 minutes ago Up 5 seconds 80/tcp admiring_brown
4:docker run命令
命令格式:docker run 镜像名 /bin/bash -c ls /
[root@server1 bak]# docker run mysql /bin/bash -c ls /
注释:
/bin/bash指定运行环境,-c指定执行命令
docker run命令会执行创建容器,开启容器,执行命令,关闭容器等一系列过程。如果没有创建容器和镜像,就会从下载镜像开始执行,一直到关闭容器。执行完成后直接关闭,状态为exited
5:进入容器与退出容器
Docker中系统镜像的缺省命令是 bash,如果不加 -ti bash 命令执行了自动会退出。这是因为如果没有衔接输入流,本身就会马上结束。加-ti 后docker命令会为容器分配一个伪终端,并接管其stdin/stdout支持交互操作,这时候bash命令不会自动退出。
格式:docker exec -it 容器ID /bin/bash
[root@server1 abc]# docker exec -it af255575064f /bin/bash
[root@server1 ~]# docker exec -it 2b9b439bf782 /bin/bash
[root@2b9b439bf782 /]# ls
anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
6:导出、导入容器
- 导出
导出容器格式为:docker export 容器ID > 定义容器名
[root@server1 abc]# docker export b1e1844148e8 > centos
[root@server1 ~]# ls
anaconda-ks.cfg bak centos initial-setup-ks.cfg nginx 公共 模板 视频 图片 文档 下载 音乐 桌面
- 导入
格式:cat 容器名 | docker import - 镜像:标签
[root@server1 ~]# cat centos | docker import - centos:web
sha256:c923c1f5a07228c01e31ab030450c0e3556f27ea9c8511caab35e309c4328f2d
[root@server1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos web c923c1f5a072 4 seconds ago 204MB
nginx latest bc9a0695f571 10 hours ago 133MB
tomcat latest e0bd8b34b4ea 6 days ago 649MB
centos 7 8652b9f0cb4c 11 days ago 204MB
7:删除容器
容器必须是exited 关闭状态,才能删除
[root@server1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5f34cac6900f nginx:latest "/docker-entrypoint.…" 2 hours ago Exited (137) About a minute ago admiring_brown
[root@server1 ~]# docker rm 5f34cac6900f
5f34cac6900f
[root@server1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
8:批量停止容器
docker stop `docker ps -aq`
9:批量删除容器
第一种:
[root@server1 ~]# dcoker rm `docker ps -aq`
第二种:
[root@server1 ~]# docker ps -a | awk '{print "docker rm"$1}' | bash 不能删除up状态的容器
三:Docker 常用命令解释
命令 | 作用 |
---|---|
-a | 显示所有的容器,包括未运行的。 |
-f | 根据条件过滤显示的内容。 |
–format | 指定返回值的模板文件。 |
-l | 显示最近创建的容器。 |
-n | 列出最近创建的n个容器。 |
–no-trunc | 不截断输出。 |
-q | 静默模式,只显示容器编号。 |
-s | 显示总的文件大小。 |
管理操作
作用 | 命令 |
---|---|
搜索镜像 | docker search 镜像 |
下载镜像 | docker pull 镜像 |
创建容器 | docker create -it nginx /bin/bash |
运行 | docker start 容器ID |
一条龙运行 | docker run -itd nginx /bin/bash |
进入容器 | docker exec -it 容器ID bash |
停止容器 | docker stop 容器ID |
删除容器 | docker rm 容器ID |
删除镜像 | docker rmi 镜像名称 |
辅助操作
作用 | 命令 |
---|---|
查看镜像 | docker images |
查看容器 | docker ps -a |
镜像导出 | docker save -o 保存位置 镜像名称 |
镜像导入 | docker load < 文件位置 |
容器导入和导出 | docker export 容器ID > 文件位置 |
cat 文件位置 | docker import - 镜像名称 |