Docker 基础操作
image
获取镜像
镜像查询
docker search centos
AI 代码解读镜像拉取
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: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
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 代码解读