35次8.23(docker02)

复制代码
#搜索拉取镜像
docker search centos
docker pull centos
#创建启动容器
docker run -it --name=a0 centod:latest echo "abc"
#如果容器中没有正在执行的指令,就会exit
docker run -it --name=a0 cenyos:latest /bin/bash
#查看docker进程
docker ps
#发现没有正在运行的进程
​
#启动容器,现在容器已经存在,但是exiting状态
docker start a0
​

35次8.23

一、打包传输

复制代码
#查看帮助文件
docker --help
#找到save,将镜像打包tar
docker save --help
#查看save使用方式
​
#查看现有镜像
docker images
#docker save -o centos.tar centos:latest
复制代码
[root@docker ~]# docker save -o centos.tar centos:latest
[root@docker ~]# ls
anaconda-ks.cfg  centos.tar
#可以将tar发送给其他用户,也可做备份

1.删除镜像

复制代码
[root@docker ~]# docker rmi centos:latest
Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container cdfc1f05bc76 is using its referenced image 5d0da3dc9764
#如果有这个镜像生成的容器正在使用,就无法使用rmi移除镜像
#删除容器。退出容器的up状态
docker rm c0
#使用docker ps --all确定没有镜像
docker rmi centos:latest
复制代码
[root@docker ~]# docker rmi centos:latest
Untagged: centos:latest
Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

2.从tar中引入镜像

复制代码
docker --help
docker load --help
docker load -i centos.tar centos:latest

二、容器导出镜像

1.从容器导出tar包

复制代码
#查看看帮助文档
docker --help
docker export --help
#使用指令
docker export -o centos_yum.tar c0
#查看新生成的tar包

2.从tar包导入镜像

复制代码
#查看帮助
docker --help
docker import --help
#使用导入
docker import -m 说明内容 centos_yum.tar centos:yum

3.封装镜像

复制代码
[root@docker ~]# docker run -it --name c0 centos:latest /bin/bash
[root@5906fffd3383 /]# cd /etc/yum.repos.d     
[root@5906fffd3383 yum.repos.d]# rm -rf *
[root@5906fffd3383 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@5906fffd3383 yum.repos.d]# ls
CentOS-Base.repo
[root@5906fffd3383 yum.repos.d]# yum -y install epel
[root@5906fffd3383 yum.repos.d]# yum clean all && yum makecache
[root@41c9a7796fde /]# read escape sequence
 # 查看帮助文档
[root@docker ~]# docker --help
[root@docker ~]# docker export --help
 # 使用指令
[root@docker ~]# docker export -o centos_yum.tar c0
 # 查看新生成的tar包
[root@docker ~]# ls
 anaconda-ks.cfg  centos.tar  centos_yum.tar 
 # 查看帮助文档
[root@docker ~]# docker --help
[root@docker ~]# docker import --help
 # 使用指令
[root@docker ~]# docker import -m yum centos_yum.tar centos:yum
 # 查看镜像
[root@docker ~]# docker images
复制代码
docker ps --all
#停用并删除容器
docker stop c1 && docker rm c0
​
#打开一个新容器
docker run -it --name c10 centos:latest /bin/bash

4.做一个带httpd服务的镜像

复制代码
docker run -it --name c100 centos:yum /bin/bash
yum -y install httpd
echo "abcd" > /var/www/html/index.html
httpd -k start   #启动服务
    curl p q
docker export -o centos_httpd.tar c100  #导出镜像
docker import -m httpd centos_httpd.tar centos:httpd  #导入镜像
docker images
docker run -it --name c101 centos:httpd /bin/bash  #测试镜像是否可以使用
httpd -k start
curl localhost

三、查看ip

1.进入容器,使用指令(交互式)

复制代码
docker attach c100
yum -y install net-tools,iprout
ip a s
ifconfig

2.使用docker指令inspect

复制代码
docker inspect c100
docker inspect c101

3.在外部调用指令(exec)

复制代码
docker exec c100 ip a
docker exec c101 ifconfig

4.使用exectouch一个文件

四、虚拟机端口映射

1.将容器中的80端口映射到宿主机(docker主机)80端口(指定端口)

复制代码
docker run -it --name c0 -p80:80 centos:httpd /bin/bash

2.随机的为容器指定映射端口,映射端口为80(随机端口)

复制代码
docker run -it --name c0 -p80:80 centos:httpd /bin/bash
​
  curl p q
  docker ps

3.通过其他的ip地址的端口映射的端口(指定其他ip的端口)

复制代码
docker run -it --name c0 -p192.168.1.51 centos:httpd /bin/bash
192.168.1.51:32768  #真机测试

五、数据存储

docker容器只是一个工具,不需要保存数据,不需要做持久化,如果要做持久化,就需要保存到宿主机上,需要宿主机和容器之间有一个共享卷

挂载外部文件

复制代码
[root@docker ~]# mkdir /source
[root@docker ~]# ls /
bin   dev  home  lib64  mnt  opt   root  sbin    srv  tmp  var
boot  etc  lib   media  nfs  proc  run   source  sys  usr
[root@docker ~]# docker run -it --name c0 -v /source:/data centos:httpd /bin/bash  #挂载
[root@996134ed7790 /]# ls
bin   dev  home  lib64       media  opt   root  sbin  sys  usr
data  etc  lib   lost+found  mnt    proc  run   srv   tmp  var
#添加文件,查看是否挂载成功
[root@docker ~]# docker exec c0 ls /data
abc.txt
[root@docker ~]# docker exec c0 touch /data/def.txt
[root@docker ~]# ls /source/
abc.txt  def.txt
相关推荐
凯子坚持 c1 小时前
Docker 容器实战:从镜像管理到私有仓库构建深度解析
java·docker·eureka
Radan小哥8 小时前
Docker学习笔记—day007
笔记·学习·docker
howard200510 小时前
Docker实战 - 将Web项目打成war包部署到tomcat容器里运行
docker·容器化部署web项目
p***c94910 小时前
Docker机器学习实战
机器学习·docker·容器
pumpkin8451412 小时前
Docker 参考手册
chrome·docker·容器
三天不学习14 小时前
GitLab Docker 安装完整配置项说明
docker·容器·gitlab
北冥有鱼被烹17 小时前
【微知】Ubuntu中如何安装docker?
ubuntu·docker
幻灭行度20 小时前
docker镜像导入到K8S的containerd中
java·docker·kubernetes
虎头金猫20 小时前
随时随地处理图片文档!Reubah 加cpolar的实用体验
linux·运维·人工智能·python·docker·开源·visual studio
哈里谢顿1 天前
Docker 中快速启动 Prometheus + Grafana操作指南(二)
docker