如何打包创建镜像和运行Docker容器及常用命令

本文介绍了如何编写Dockerfile,包括从查看本地镜像到构建、推送镜像,再到运行Docker容器的全过程。通过`docker build`命令构建镜像,`docker push`推送至私有仓库,`docker run`以守护进程或交互模式启动容器,并提供了查看容器状态、删除容器和镜像的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何写Dockerfile参考:

相关主机和地址


主要命令

查看本地已有镜像
docker images
如:
10.10.36.213:root @ docker-registry :/root/Dockerfile/jetty/jetty-1.8.45]# docker images
REPOSITORY                                   TAG                 IMAGE ID            CREATED             SIZE
10.10.36.213/library/tdaajdk7                v1.13               73c1db03b30c        3 hours ago         696.2 MB
10.10.36.213/library/tdaajdk7                v1.11               99268829471a        19 hours ago        696.2 MB
10.10.36.213/library/tdaajdk7                v1.10               b5308b7f7c41        20 hours ago        696.2 MB
10.10.36.213/library/tdaajdk7                v1.9                0818f66669cb        20 hours ago     616.8 MB

build镜像

在Dockerfile所在目录执行
docker build -t 10.10.36.213/library/你的镜像名:版本 .
别忘了最后的点,用来指定Dockerfile的位置
build过程类似这样:
cos@controller ~/Dockerfile/eureka $ docker build -t 10.10.36.213/library/test:v1.0 .
Sending build context to Docker daemon 78.69 MB
Step 1 : FROM 192.168.16.100/jdk8:8u74
 ---> d84b155276a9
Step 2 : MAINTAINER jingchaosong jingchao.song@tendcloud.com
 ---> Using cache
 ---> 369126ee2c40
Step 3 : ADD eureka-server-1.1-SNAPSHOT.jar /root/
 ---> Using cache
 ---> cd3facb762b3
Successfully built cd3facb762b3

push镜像

docker push 10.10.36.213/library/你的镜像名:版本
如果出现push失败的情况,并且提示需要的登录,请使用以下命令login到私有镜像仓库
docker login 10.10.36.213
用户名admin
密码Harbor12345
email可以不填

run容器

直接以daemon方式运行
docker run -d --net=mynet 10.10.36.213/library/你的镜像名:版本 命令
--net=mynet是让docker调用我们自己的网络插件来分配IP地址,IP地址从我们自己配置的IP池里获取
查看启动的容器的IP地址可以用以下命令
docker inspect container_id | grep IPAddress

交互方式运行
docker run -it --net=mynet 10.10.36.213/library/你的镜像名:版本

docker run的时候可以加很多参数,如容器的资源配额限制、hostname、挂载本地目录、DNS等配置,请参看docker run --help

查看容器状态

查看正在运行的容器的状态
docker ps

查看所有容器(包括已经Exit容器的状态)
docker ps -a

删除容器

docker rm container_id
container_id只需要前几位字符就可以了,只要能够区别不同容器即可,不需要输入全部ID字段

强制删除容器
docker rm -f container_id

删除镜像

docker rmi image_id

进入容器内部

前提是必须是正在运行的容器
docker exec -it container_id /bin/bash
运行exit退出

查看容器详细信息

docker inspect container_id
可以看到容器的配置信息和挂载的本地目录、网络配置、状态等

镜像制作注意事项

Dockerfile与打包镜像所需的资源都放在同一目录下,如果add tar.gz包,build镜像的时候,tar包可以自动解压到对应目录中,添加目录的话使用./xxx /dir/to/des/     

目前的docker集群使用swarm手动管理,在10.10.36.213上run的容器实际上上运行在10.10.0.85或86这两台主机上。
使用docker info可以查看这两台主机的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值