docker镜像,ip,端口映射,持久化

2024-08-25 07:04

本文主要是介绍docker镜像,ip,端口映射,持久化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

docker

镜像的迁移:导出和导入镜像

查看镜像:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

打包

将镜像打包,找到save,可以将镜像保存为一个tar包,可以将tar发送给其他用户,也可以作为备份
[root@docker ~]# docker save -o centos.tar centos:latest 
[root@docker ~]# ls
anaconda-ks.cfg  centos.tar  RHEL7-extras.iso  RHEL7OSP-10.iso
[root@docker ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker ps -all
CONTAINER ID   IMAGE           COMMAND       CREATED        STATUS                      PORTS     NAMES
b9d46da21fe3   centos:latest   "/bin/bash"   20 hours ago   Exited (0) 10 minutes ago             c0

删除镜像:

删除镜像时,如果有这个镜像生成的容器正在使用(exited时也不能删除),那么就无法使用rmi移除镜像

[root@docker ~]# docker rmi centos:latest 
Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container b9d46da21fe3 is using its referenced image 5d0da3dc9764
删除容器,退出容器up状态

docker stop c0

[root@docker ~]# docker rm c0
c0

使用docker ps -all 确定没有镜像

[root@docker ~]# docker ps -all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[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

加载

从tar中引入镜像:将tar文件加载到镜像中

docker  --help

docker load --help
[root@docker ~]# ls
anaconda-ks.cfg  centos.tar  RHEL7-extras.iso  RHEL7OSP-10.iso
[root@docker ~]# docker load -i centos.tar 
74ddd0ec08fa: Loading layer  238.6MB/238.6MB
Loaded image: centos:latest
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

创建镜像

1.从容器导出tar包

查看帮助文档

     docker --help

     docker export --help

使用指令

     docker  export -o centos_yum.tar  c0

查看新生成的tar包

2.从tar包导入镜像

查看帮助文档

     docker --help

     docker  import --help 

使用导入

     Usage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
     docker  import -m 说明内容  centos_yum.tar  centos:yum

查看镜像,这个镜像不需要我们配置yum

创建容器c0,在c0容器中配置了阿里云镜像和epel-release,ctrl+p+q在后台运行容器

容器打包:

[root@docker ~]# docker export -o centos_yum.tar c0
[root@docker ~]# ls
anaconda-ks.cfg  centos_yum.tar    RHEL7OSP-10.iso
centos.tar       RHEL7-extras.iso

引入镜像:
[root@docker ~]# docker import -m yum centos_yum.tar centos:yum
sha256:c03efa37a8dc3ab41a31a56f9a12c80374c8ccb321d57a617bd2b53a07d4f71e

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       yum       c03efa37a8dc   22 seconds ago   260MB
centos       latest    5d0da3dc9764   2 years ago      231MB

验证:

[root@docker ~]# docker stop c0
c0
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS                     PORTS     NAMES
882870618b17   centos:latest   "/bin/bash"   15 minutes ago   Exited (0) 6 seconds ago             c0
[root@docker ~]# docker rm c0
c0
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker run -it --name c0 centos:yum /bin/bash
[root@860c52d03ab9 /]# ls /etc/yum.repos.d
CentOS-Base.repo   epel-playground.repo       epel-testing.repo
epel-modular.repo  epel-testing-modular.repo  epel.repo


ip网络:查看ip

1.交互式:进入到容器,使用指令

docker start c0

docker attach c0

yum -y install net-tools或者iproute

ifconfig或ip a  s 来查看地址

2.使用docker指令inspect

[root@docker ~]# docker inspect c100

3.在外部调用指令:exec

前提是在容器上下载相关的工具或者

docker exec c100 yum -y install net-tools

[root@docker ~]# docker exec c100 ip a s

[root@docker ~]# docker exec c100 ifconfig

使用exec指令touch一个文件

[root@docker ~]# docker exec c100 touch /opt/test.txt
[root@docker ~]# docker exec c100 ls /opt
test.txt
 

启动容器并端口映射

不做端口映射的话,在物理机上无法查看docker容器发布的服务

1.指定端口映射

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

docker run -it --name c0 -p80(宿主机):80(容器)  centos:httpd /bin/bash

2.随机端口映射

随机的为容器指定映射端口,映射端口>=32768

docker run -it --name c1 -p80(容器) centos:httpd /bin/bash

crtl+p+q

docker  ps

3.指定其他ip的端口映射

通过其他的ip地址的端口映射容器的端口

通过ifconfig添加一个ip

docker run -it --name c0 -pIP地址::80 centos:httpd /bin/bash

[root@docker ~]# ifconfig ens33:0 192.168.118.56 broadcast 192.168.118.56 netmask 255.255.255.255 up
[root@docker ~]# docker run -it --name c0 -p192.168.118.56::80 centos:httpd /bin/bash
[root@91b858d59851 /]# httpd -k start
[root@91b858d59851 /]# curl localhost
i am httpd
[root@91b858d59851 /]# [root@docker ~]# 
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS                          NAMES
91b858d59851   centos:httpd   "/bin/bash"   50 seconds ago   Up 50 seconds   192.168.118.56:32768->80/tcp   c0
 

[root@docker ~]# curl 192.168.118.56:32768
i am httpd

持久化:共享卷,挂载

将宿主机上的source目录与容器中的data目录共享:
[root@docker ~]# ls /
bin   dev  home  lib64  mnt  proc  run   source  sys  usr
boot  etc  lib   media  opt  root  sbin  srv     tmp  var
[root@docker ~]# docker run -it --name c0 -v /source:/data centos:httpd /bin/bash
[root@805a80743684 /]# ls
bin   dev  home  lib64         media  opt   root    sbin  sys  usr
data  etc  lib     lost+found  mnt    proc  run    srv   tmp  var
[root@805a80743684 /]# [root@docker ~]# 
[root@docker ~]# touch /source/abc.txt
[root@docker ~]# ls /source
abc.txt
[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
 

这篇关于docker镜像,ip,端口映射,持久化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104874

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

linux下查看自己的外网ip

局域网的服务器是通过ADSL路由器连接外网的,但ADSL是从ISP运营商那儿通过动态获得IP的,那么我怎么知道自己的外网地址是多少呢? 今天得到几个办法: curl -s http://whatismyip.org wget http://whatismyip.org 然后再  cat index.html 也可以看到

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列