导航:首页 > 程序命令 > 容器构建启动命令

容器构建启动命令

发布时间:2023-03-10 05:39:23

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

在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 [email protected]
---> 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
可以看到容器的配置信息和挂载的本地目录、网络配置、状态等

‘贰’ Docker实践之镜像启动及常用命令

前面简单的介绍了如何在linux中安装 Docker ,这节内容,我们学习Docker镜像启动

我们Docker启动镜像从哪里来呢?镜像由我们自己或者他人构建,构建好的镜像可以直接放在本地或者上传到远程镜像仓库。当我们运行一个Docker镜像时,会先在本地查找是否存在所要运行的镜像,如果没有则会去远程镜像仓库拉取,默认为官方的镜像仓库,当然,我们也可以改为自己的私有镜像仓库。接下来,我们先了解几个简单的命令。

我们直接在安装好Docker的主机上执行 docker run nginx

我们从运行日志可以看到这样的字眼:

docker发现本地不存在nginx的镜像文件,便直接去仓库中查找下载并运行,因为我们没有让镜像后台运行,所以这次运行起来的容器会随着这次远程连接断开而停止。当我按下 ctrl+c 时,容器便会停止

如果要让容器后台运行,则需要在启动时加 -d 这个参数,

我们来看一下当前运行中的容器

可以看到,我们的nginx是启动起来了,但是,我们并不能访问它。容器有自己的一套虚拟系统,如:网络、文件。如果我们需要访问,则需要给容器和宿主机做一个映射,让宿主机和容器能够交互。这里,我们就给nginx增加端口和配置文件映射。我为了省事,就直接把容器中的配置文件复制出来用

接下来,我们便来建立这个映射关系

来看看容器是否启动成功

这时候,我们便能访问我们的nginx服务,

前面已经说到,容器有自己的虚拟系统,如果需要持久化的数据不映射到宿主机上,那么当容器销毁时,数据也会随之丢失,所以,我们在用容器运行时,一定要做好数据的保存方式。

在前面,我们列出了几个常用的Docker命令,这里,我们把这几个常用命令稍微讲解一下,

ps主要是查询正常运行的容器
docker ps 是当前正在运行的容器

这里面的 CONTAINER ID 很重要,后面我们的很多操作都需要基于这个 CONTAINER ID 或者 NAMES 。
docker ps -a 则是列出运行中和停止中的所有容器,

这几个参数这是启动/停止/重启/删除容器的参数,如: docker restart 5ae0319e1795 ,如果要删除容器,必须要先停止,否则会提示

docker run [OPTIONS] IMAGE [COMMAND] [ARG…],它的运行参数就比较复杂了,

这里还是只介绍几个常用的命令参数吧,

运行示例 docker run -d --name nginx-cc -v /root/nginx/:/etc/nginx/ -p 9999:80 -m 256M nginx

cp命令主要是用于宿主机和容器间的文件复制,一般格式如下:
docker cp [OPTIONS] 容器名/容器Id:容器文件路径 宿主机文件路径 从容器复制到宿主机
docker cp [OPTIONS] 宿主机文件路径 容器名/容器Id:容器文件路径 从宿主机复制到容器中

inspect主要是查看容器或者镜像元数据,如:

从返回的信息中,我们可以得到,启动时所设置的启动参数。如:

如果,那天我们忘记之前容器启动的参数时,便可以通过 inspect 来帮我们找回来。

logs主要是查询docker容器的运行日志,如:

‘叁’ Docker命令全集

一:首先来理解三个名词解释:

1、镜像(image)
Docker 镜像(Image)就是一个只读的模板。

例如:一个镜像可以包含一个完整的操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

2、仓库(repository)
仓库(Repository)是集中存放镜像文件的场所。

3、容器(container)
Docker 利用容器(Container)来运行应用。容器是从镜像(Image)创建的运行实例。


二:常用的命令集合如下:

容器生命周期管理 — docker
[run|start|stop|restart|kill|rm|pause|unpause|create]


容器操作运维 — docker
[ps|exec|inspect|top|attach|events|logs|wait|export|import|port]


容器rootfs命令 — docker
[commit|cp|diff]


本地镜像管理 — docker
[images|rmi|tag|build|history|save]


镜像仓库 — docker
[login|pull|push|search]


其他命令 — docker
[info|version]


详细命令说明如下:

docker run -d --name alias-Name imageName //在后台启动一个容器
docker start Name/ID //启动容器
docker stop Name/ID //停止容器
docker restart Name/ID //重启容器
docker kill -s KILL Name/ID //杀死一个运行的容器
docker rm /rm -f Name/ID //删除容器
docker pause Name/ID //停止容器
docker unpause Name/ID //恢复容器
docker create --name CONTAINER_Name imageName //只创建容器但不启动

docker ps / docker ps -a //查看运行的容器
docker exec -it CONTAINER_ID /bin/bash //进行一个运行中的容器,开启一个新的终端
docker attach CONTAINER_ID //进行一个运行中的容器,不开启一个新的终端
docker inspect CONTAINER_Name //查看容器的相关信息
docker top CONTAINER_Name //查看容器里面的进程
docker events -f "image"="imageName" --since="1467302400" //时间戳=2016年7月1日后的相关事件
docker logs CONTAINER_Name //查看容器的日志输出
docker wait CONTAINER_Name //阻塞运行直到容器停止,然后打印出它的退出代码
docker export -o test.tar CONTAINER_ID //将容器进行打包保存到本地,文件类型为tar
cat test.tar |docker import - image_name:tag //将上面保存的文件导入到镜像库中
docker port CONTAINER_ID //查看容器的端口映射情况

commit 从容器中创建一个新的镜像
docker commit -a "tony test" -m "my mysql" CONTAINER_ID mymysql:v1
docker images mymysql:v1
cp 在使用的过程中会进行多个主机与容器之间的数据交换
docker cp /ruiqi/content CONTAINER_ID:/ruiqi/
diff 用来检查容器里面文件结构的更改
docker diff CONTAINER_ID


docker images /docker images -a //查看本地的镜像,-a 表示是所有的镜像
docker rmi -f image_name //删除镜像
docker tag mysql:v5.6 mysql:v5.7 //给镜像做一个有别名的复本
docker build -t runoob/ubuntu:v1 . //构建一个镜像
docker history image_name //查看当前这个镜像的 历史 信息
docker save -o TestFlask.tar TestFlask:v3 //将当前的镜像保存到本地的一个tar 类型的文件


docker login //登录镜像仓库

docker pull //从镜像仓库中拉镜像

docker push //向镜像仓库推本地的镜像文件

docker search //检索镜像内容


三:利用dockerfile 制作一个tomcat 运行image:

[root@localhost common]# more Dockerfile.tomcat
FROM cloud.io/centos:7
COPY jdk-8u144-linux-x64.rpm /opt/jdk-8u144-linux-x64.rpm
RUN ["rpm","-ivh","/opt/jdk-8u144-linux-x64.rpm"]
COPY security /usr/java/jdk1.8.0_144/jre/security
COPY certs /etc/pki/tls/certs
COPY tomcat /opt/tomcat
RUN ["ln","-s","/opt/tomcat","/usr/local/tomcat"]

‘肆’ 如何启动一个已经创建的docker容器,并进入SHELL对其操作

有同学在docker下安装了nginx 但是不知道目录在哪,可以使用命令:
sudo find / -name "50x.html"

因为nginx里必定会有50x.html,所以查找它,结果发现nginx的目录在docker容器里,如果操作它,就需要进入容器的shell。

必须先启动容器:
sudo docker start “容器ID”

然后使用下边的命令进入shell:
sudo docker exec -it “容器ID” bash

将主机的文件复制到容器里:
sudo docker cp 主机目录 容器ID:容器目录

阅读全文

与容器构建启动命令相关的资料

热点内容
广东农信app怎么更改预留手机号码 浏览:775
嵌套页面php 浏览:566
安卓手机怎么调到微信聊天模式 浏览:857
java博客开源系统 浏览:719
男人之间的加密对话日语 浏览:359
怎么连远程连接服务器 浏览:11
安卓二手手机该如何检测 浏览:213
微信可以共享图片文件夹吗 浏览:80
联通wifi加密码 浏览:643
录屏文件夹小米 浏览:548
车上的app怎么重设 浏览:24
指定文件夹属性 浏览:131
linuxphp编程 浏览:337
以下不正确的是云服务器 浏览:909
琉璃神社压缩密码 浏览:715
大一学生解压视频 浏览:376
单位电脑e盘加密输入正确密码 浏览:873
phpfileupload 浏览:634
刑拘程序员 浏览:617
51单片机飞行器 浏览:166