Docker 基础操作

简介: 容器云时代

Docker 基础操作

image

获取镜像

  1. 镜像查询

    docker search centos
  2. 镜像拉取

    docker pull centos:6.9

镜像基本查看

[root@docker ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              6.8                 82f3b5f3c58f        4 months ago        195 MB
centos              6.9                 2199b8eb8390        4 months ago        195 MB
centos              7.5.1804            cf49811e3cdb        4 months ago        200 MB
centos              7.6.1810            f1cb7c7d58b7        4 months ago        202 MB


标识镜像唯一性的方法:
1. REPOSITORY:TAG
centos:7.5.1804 
2. IMAGE ID (sha256:64位的号码,默认只截取12位)
82f3b5f3c58    
[root@docker /]# docker image ls --no-trunc 

镜像详细信息查看

docker image inspect ubuntu:latest
docker image inspect 82f3b5f3c58f

只查看镜像ID

docker image ls -q

镜像的导入和导出

# 导出
docker image save 3556258649b2 >/tmp/ubu.tar

# 导入
docker image load -i /tmp/ubu.tar
docker image tag 3556258649b2 youto/ubu:v1 

镜像的删除

docker image rm -f 3556258649b2

# 删除所有镜像
docker image rm -f `docker image ls -q`

container

交互式的容器

docker container run -it  9f38484d220f
docker container ls

# CONTAINER ID : 容器的唯一号码(自动生成的)
# NAMES           : 容器的名字(可以自动,也可以手工指定)
# STATUS       : 容器的运行状态  ( Exited , Up)


# 手工指定容器名启动
docker container run -it --name="youto_centos76" 9f38484d220f

守护式容器

docker run -d --name="youto_nginx" nginx:1.14
# 查询容器的详细信息:
docker container inspect youto_nginx

容器的应用场景

# 交互式的容器: 工具类: 开发,测试,临时性的任务()
docker container run -it --name="youto_cent76"  --rm 9f38484d220f
# 守护式容器: 网络服务
docker run -d -p 8080:80 --name="youto_nginx_80" nginx:1.14

守护式容器的关闭和启动

# 守护式容器的关闭和启动
docker container stop oldguo_nginx_80
docker container start oldguo_nginx_80

# 交互式的容器的关闭和启动
docker container stop nervous_allen
docker container start -i  nervous_allen

# 容器的连接方法:
docker container attach nervous_allen

# 子进程的方式登录(在已有工作容器中生成子进程,做登录.可以用于进行容器的调试,退出时也不会影响到当前容器)
docker container exec -it nervous_allen /bin/bash

# 容器的后台及前台运行:
1. ctrl + P, Q   
   attach 调用到前台
2. 死循环 
3. 让程序前台一直允许(夯在前台)
   制作守护式容器时,常用的方法

容器的端口映射

指定映射(docker 会自动添加一条iptables规则来实现端口映射)
    -p hostPort:containerPort
    -p ip:hostPort:containerPort 
    -p ip::containerPort(随机端口:32768-60999)
    -p hostPort:containerPort/udp
    -p 81:80 –p 443:443
随机映射
    docker run -P 80(随机端口)    
docker container run -d -p 8080:80 --name='n2' nginx:1.14
docker container run -d -p 10.0.0.100:8081:80 --name='n3' nginx:1.14
docker container run -d -p 80 --name='n5' nginx:1.14
docker container run -d -p 172.16.1.200::80 --name='n6' nginx:1.14

容器的其他管理

docker ps -a  -q 
等价于:
docker container ls -a -q

docker  top  ba9143bcaf74
等价于:
docker  container top  ba9143bcaf74

查看日志:
docker logs testxx
docker logs -tf testxx

docker logs -t testxx
docker logs -tf  --tail 10 testxx
docker logs -tf  --tail 0 testxx

命令总结

镜像类

docker image 
                search 
                pull 
                ls        
                inspect   
                rm        
                save 
                load

容器类

docker container 
                    run         
                    start       
                    stop         
                    restart     
                    kill 
                    attach 
                    exec         
                    ls          
                    top         
                    logs 
                    inspect     

数据卷

1. 手工交互数据:
[root@docker opt]# docker container cp index.html n1:/usr/share/nginx/html/
[root@docker opt]# docker container cp n1:/usr/share/nginx/html/50x.html ./

2. Volume实现宿主机和容器的数据共享
[root@docker opt]# mkdir -p /opt/html
[root@docker ~]# docker run -d --name="nginx_3" -p 83:80 -v /opt/html:/usr/share/nginx/html nginx

作用: 数据持久化
3. 例子:  开启两个nginx容器(90,91),共同挂载一个数据卷,实现静态资源共享

4. 数据卷容器:
(1)宿主机模拟数据目录
mkdir -p /opt/Volume/a
mkdir -p /opt/Volume/b
touch /opt/Volume/a/a.txt
touch /opt/Volume/b/b.txt

(2)启动数据卷容器
docker run -it  --name "nginx_volumes" -v /opt/Volume/a:/opt/a  -v /opt/Volume/b:/opt/b centos:6.9 /bin/bash
ctrl p q

(3)使用数据卷容器
docker run -d  -p 8085:80 --volumes-from  nginx_volumes --name "n8085"  nginx
docker run -d  -p 8086:80 --volumes-from  nginx_volumes --name "n8086"  nginx
作用:  在集中管理集群中,大批量的容器都需要挂载相同的多个数据卷时,可以采用数卷容器进行统一管理
相关文章
|
运维 安全 持续交付
利用ansible的角色快速批量一键部署基础docker环境
利用ansible的角色快速批量一键部署基础docker环境
453 0
利用ansible的角色快速批量一键部署基础docker环境
|
存储 缓存 安全
Docker自测题(基础、容器、镜像等)(上)
什么是 Docker ? Go 语言开发,容器虚拟化技术,C/S 架构,具有隔离、快速、轻便的特点。
|
NoSQL Redis 数据库
【Docker 基础教程】容器数据持久化(三)------ Redis的基础配置
【Docker 基础教程】容器数据持久化(三)------ Redis的基础配置
【Docker 基础教程】容器数据持久化(三)------ Redis的基础配置
|
关系型数据库 MySQL Shell
【Docker 基础教程】容器数据持久化(二) ------ Mysql的基础配置
【Docker 基础教程】容器数据持久化(二) ------ Mysql的基础配置
【Docker 基础教程】容器数据持久化(二) ------ Mysql的基础配置
|
存储 监控 Linux
Docker自测题(基础、容器、镜像等)(下)
什么是 Docker ? Go 语言开发,容器虚拟化技术,C/S 架构,具有隔离、快速、轻便的特点。
|
Shell Linux 应用服务中间件
Docker 基础 常用的其它命令
容器常用命令,后台启动容器,查看容器日志,查看容器进程,查看容器或镜像元数据,进入当前正在运行的容器,从容器内拷贝文件到主机,docker commit命令,将容器转为镜像等命令及参数详解
Docker 基础 常用的其它命令
|
Docker 容器
Docker基础
容器化技术 1.基础镜像MB级别 2.创建简单 3.隔离性强 4.启动速度秒级 5.移植域分享方便 安装Docker
105 0
|
存储 Ubuntu 关系型数据库
Docker基础
总结一些docker的基础概念与用法
169 0
|
运维 Devops Linux
【Linux】【开发环境】【RHEL】开发环境搭建系列之六——安装docker基础环境
【Linux】【开发环境】【RHEL】开发环境搭建系列之六——安装docker基础环境
150 0
|
Linux 应用服务中间件 C语言
Docker命令基础 简洁版本
作者主页:https://www.couragesteak.com/