Docker使用小结(四)发布镜像

安装Docker后,启动docker

[email protected]:/home/xxx/Documents# service docker start

停止docker命令

[email protected]:/home/xxx/Documents# service docker stop

查看运行的docker版本


[email protected]:/home/xxx/Documents# docker --version
Docker version 18.09.7, build 2d0083d

通过pull命令获取相关镜像

[email protected]:/home/xxx/Documents# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
1ab2bdfe9778: Pull complete
a17e64cfe253: Pull complete
e1288088c7a8: Pull complete
Digest: sha256:53ddb41e46de3d63376579acf46f9a41a8d7de33645db47a486de9769201fec9
Status: Downloaded newer image for nginx:latest

获取镜像后,通过docker run使其运行起来

[email protected]:/home/xxx/Documents# docker run -d -p 8800:80 --name nginx_zhao nginx
780f3120141d2e4c861f3ab190f67d233130b87645db5e93eeef6ada108162fa

[email protected]:/home/xxx/Documents# docker ps -l
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
780f3120141d        nginx               "nginx -g 'daemon of…"   14 seconds ago      Up 12 seconds       0.0.0.0:8800->80/tcp   nginx_zhao

sudo docker ps -a 列出所有容器, 不加 -a 仅列出正在运行的

sudo docker run -d -p 8800:80 --name nginx_zhao nginx 表示运行指定的镜像
dudo docker run -d --privileged=true -p 83:80 --name nginx83 nginx表示提升权限

宿主主机端口:容器内部端口
  -d 后台运行
  -p 8800:80 是指定对外暴露的端口 容器内部用80 对应外部宿主主机的的8800 代理一样
  --name指定容器的名字 最后的nginx 代表要运行的镜像名字 有tag的加上tag 如 nginx:xxx 默认为latest
然后访问宿主主机地址+8800端口 出现下图表明nginx已经成功运行

pull到的镜像有很多需要修改的地方,比如配置文件等,使用exec命令进入到容器内部进行操作

[email protected]:/home/xxx/Documents# docker exec -it 780f3120141d /bin/bash
[email protected]:/# pwd
/
[email protected]:/# ls -l
total 64
drwxr-xr-x   2 root root 4096 Aug 12 00:00 bin
drwxr-xr-x   2 root root 4096 May 13 20:25 boot
drwxr-xr-x   5 root root  340 Sep 11 01:38 dev
drwxr-xr-x   1 root root 4096 Sep 11 01:38 etc
drwxr-xr-x   2 root root 4096 May 13 20:25 home
drwxr-xr-x   1 root root 4096 Aug 15 21:22 lib
drwxr-xr-x   2 root root 4096 Aug 12 00:00 lib64
drwxr-xr-x   2 root root 4096 Aug 12 00:00 media
drwxr-xr-x   2 root root 4096 Aug 12 00:00 mnt
drwxr-xr-x   2 root root 4096 Aug 12 00:00 opt
dr-xr-xr-x 290 root root    0 Sep 11 01:38 proc
drwx------   2 root root 4096 Aug 12 00:00 root
drwxr-xr-x   1 root root 4096 Sep 11 01:38 run
drwxr-xr-x   2 root root 4096 Aug 12 00:00 sbin
drwxr-xr-x   2 root root 4096 Aug 12 00:00 srv
dr-xr-xr-x  13 root root    0 Sep 11 01:38 sys
drwxrwxrwt   1 root root 4096 Aug 15 21:22 tmp
drwxr-xr-x   1 root root 4096 Aug 12 00:00 usr
drwxr-xr-x   1 root root 4096 Aug 12 00:00 var
[email protected]:/# nginx -v
nginx version: nginx/1.17.3
[email protected]:/# exit
exit

通过inspect获得镜像详细信息,通过grep检索需要的项目

[email protected]:/home/xxx/Documents# docker inspect nginx_zhao |grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

进入容器内部并修改后,怎么生成新的镜像供下次直接使用

[email protected]:/home/xxx/Documents# docker commit nginx_zhao zhao/nginx:v1.0
sha256:75fe4514801e00e544741efa375fe4eb764186f7a9a75d76c27ee488070c84ae
[email protected]:/home/xxx/Documents# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
zhao/nginx           v1.0                75fe4514801e        27 seconds ago      126MB

docker commit nginx_zhao zhao/nginx:v1.0,其中nginx_zhao表示刚修改的容器名字或者id,zhao/nginx:v1.0表示保存的镜像名字 :后面为tag
刚刚commit的镜像是保存在本地的,如果要提交到网络上供其他人pull 使用呢?
可以在https://cloud.docker.com/上注册一个账号,提交本地镜像到https://cloud.docker.com/上去。

参考:Docker技术入门与实战 Docker基本命令使用及发布镜像

原文地址:https://www.cnblogs.com/eugene0/p/11515580.html

时间: 2024-10-10 10:54:49

Docker使用小结(四)发布镜像的相关文章

Docker alpine 添加cst时区并发布镜像到docker.io

本来准备用scratch来运行golang程序的,运行是可以但是遇到了时区的问题,且scratch是一个空镜像也不方便做定制化 alpine是精简版镜像(约5.6M),虽然默认不带timezone,但提供是包管理工具apk.也正是由于其精简性便于在alpine的基础上做定制化 测试看下alpine里的时间 先docker pull alpine拉取镜像,再执行docker run --rm alpine date -R 查看alpine里的时间 看到时间后面的+0000就说明alpine默认是格

Docker 镜像及Docker仓库配置 [四]

Docker 镜像及Docker仓库配置 [四] Docker 时间:2016年11月8日15:45:20 一.Docker 镜像介绍 Docker镜像构建分为两种,一种是手动构建,另一种是Dockerfile(自动构建) Docker镜像手动构建案例: 我们基于centos镜像进行构建,制作nginx镜像 [[email protected] ~]# docker run --name abcdocker -it centos[[email protected] /]# yum install

docker学习笔记7:发布镜像到docker hub上

镜像创建好后,很重要的一个操作就是共享和发布.可以将自己创建的镜像发布到docker hub上,也可以发布到自己的私有docker hub上. 要想发布镜像到dokcer hub上,首先要在dokcer hub上注册账户,并且在本机(准备提交镜像到docker hub的机器上)上进行注册.具体过程如下: 1.登录 https://hub.docker.com/ 网站注册一个用户,如 jeme.注册时需要提供邮箱进行验证. 2.在本机用docker login 向docker hub注册(登录),

云计算进阶学习路线图课件:Docker容器的四种网络模式

Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装Docker引擎的服务器上,也可以实现虚拟化.随着云计算的飞速发展以及企业需求的多样化,Docker容器技术成为云计算人才必备的技能之一.很多人想要快速掌握Docker容器技术,接下来就给大家讲解Docker容器的四种网络模式. 1.closed container 封闭式网络模式 没有网络协议栈的通信使用none模式,Docker容器拥有自己的Network Nam

RHCE之本地源制作、HTTP发布镜像用于KVM的VM新安装过程

最近在学习RHCE课程,简单的讲一下如何用HTTP来作为KVM的VM网络安装过程,届时也会讲到FTP+HTTP+KickStart发布,还有PXE安装RHEL. 环境: 虚拟宿主机:RHEL 7.0 硬件:4vCPU+8G+40Gdisk IP地址:172.16.38.10 我先在笔记本上安装VMware Workstation 12,并新建一台RHEL7的虚拟机作为本次的宿主机(此步省略,需要VM12和RHEL7,届时会在我分享的网盘中内) 1.制作本地源,一般来说RHEL的源都是来自redh

RHCE之HTTPD+FTP+KickStart发布镜像,用于KVM的VM自动安装过程

最近在学习RHCE课程,上一篇简单的讲一下如何用HTTP来作为KVM的VM网络安装过程,请阅读:http://gshao.blog.51cto.com/3512873/1882093 今天讲到FTP+HTTP+KickStart发布,当然还有PXE安装RHEL(后续讲). 环境: 虚拟宿主机:RHEL 7.0 硬件:4vCPU+8G+40Gdisk IP地址:172.16.38.10 vnet ip地址:192.168.100.1 先截图上一篇装完rhel系统的样子: 回归到正文,今天讲HTTP

使用docker构建、运行jenkins镜像

目录: 1.基于docker官方的jenkins镜像启动容器 2.使用源码构建jenkins镜像并运行容器 3.使用csphere产品对容器.镜像.主机进行管理 docker近两年很火,最近在听cSphere希云主办的docker培训, 之前也参加过docker相关的技术沙龙(如docker meetup). 同时也使用Jenkins近两年,所以尝试使用docker构建jenkins镜像.运行基于镜像的容器. 因为听希云的docker培训获得了一张200元的腾讯云代金券, 所以用代金券在腾讯云上

Docker基础-使用Dockerfile创建镜像

1.基本结构 Dockerfile由一行行命令语句组成,并支持以#开头的注释行.例如: # This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_user # Command format: Instruction [arguments / command ] .. # Base image to use, this nust be set as the first line FROM ubu

docker定义、安装、镜像、容器

Docker是什么 使用最广泛的开源容器引擎 一种操作系统级的虚拟化技术 依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制) 一个简单的应用程序打包工具 Docker设计目标 提供简单的应用程序打包工具 开发人员和运维人员职责逻辑分离 多环境保持一致性 像一艘货船,通过集装箱把代码打包,分开,然后再传输 Docker基本组成 Docker Client:客户端Ddocker Daemon:守护进程Docker Images:镜像Docker Container: