Docker 基础操作

简介: 容器云时代

Docker 基础操作

image

获取镜像

  1. 镜像查询

    docker search centos
    AI 代码解读
  2. 镜像拉取

    docker pull centos:6.9
    AI 代码解读

镜像基本查看

[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 
AI 代码解读

镜像详细信息查看

docker image inspect ubuntu:latest
docker image inspect 82f3b5f3c58f
AI 代码解读

只查看镜像ID

docker image ls -q
AI 代码解读

镜像的导入和导出

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

# 导入
docker image load -i /tmp/ubu.tar
docker image tag 3556258649b2 youto/ubu:v1 
AI 代码解读

镜像的删除

docker image rm -f 3556258649b2

# 删除所有镜像
docker image rm -f `docker image ls -q`
AI 代码解读

container

交互式的容器

docker container run -it  9f38484d220f
docker container ls

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


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

守护式容器

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

容器的应用场景

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

守护式容器的关闭和启动

# 守护式容器的关闭和启动
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. 让程序前台一直允许(夯在前台)
   制作守护式容器时,常用的方法
AI 代码解读

容器的端口映射

指定映射(docker 会自动添加一条iptables规则来实现端口映射)
    -p hostPort:containerPort
    -p ip:hostPort:containerPort 
    -p ip::containerPort(随机端口:32768-60999)
    -p hostPort:containerPort/udp
    -p 81:80p 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
AI 代码解读

容器的其他管理

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
AI 代码解读

命令总结

镜像类

docker image 
                search 
                pull 
                ls        
                inspect   
                rm        
                save 
                load
AI 代码解读

容器类

docker container 
                    run         
                    start       
                    stop         
                    restart     
                    kill 
                    attach 
                    exec         
                    ls          
                    top         
                    logs 
                    inspect     
AI 代码解读

数据卷

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
作用:  在集中管理集群中,大批量的容器都需要挂载相同的多个数据卷时,可以采用数卷容器进行统一管理
AI 代码解读
目录
打赏
0
0
0
0
2
分享
相关文章
利用ansible的角色快速批量一键部署基础docker环境
利用ansible的角色快速批量一键部署基础docker环境
479 0
利用ansible的角色快速批量一键部署基础docker环境
Docker自测题(基础、容器、镜像等)(上)
什么是 Docker ? Go 语言开发,容器虚拟化技术,C/S 架构,具有隔离、快速、轻便的特点。
Docker自测题(基础、容器、镜像等)(下)
什么是 Docker ? Go 语言开发,容器虚拟化技术,C/S 架构,具有隔离、快速、轻便的特点。
Docker 基础 常用的其它命令
容器常用命令,后台启动容器,查看容器日志,查看容器进程,查看容器或镜像元数据,进入当前正在运行的容器,从容器内拷贝文件到主机,docker commit命令,将容器转为镜像等命令及参数详解
Docker 基础 常用的其它命令
Docker基础
容器化技术 1.基础镜像MB级别 2.创建简单 3.隔离性强 4.启动速度秒级 5.移植域分享方便 安装Docker
115 0
Docker基础
总结一些docker的基础概念与用法
198 0
【Linux】【开发环境】【RHEL】开发环境搭建系列之六——安装docker基础环境
【Linux】【开发环境】【RHEL】开发环境搭建系列之六——安装docker基础环境
160 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等