Docker中如何定制运行容器镜像
发布网友
发布时间:2022-02-27 00:56
我来回答
共1个回答
热心网友
时间:2022-02-27 02:25
1.先下载centos镜像
[root@docker ~]# docker pull centos
2.启动容器并进行配置
启动容器,
[root@docker ~]# docker run -it -d --name test-centos1 centos
d72250ecaa5e3e36226a1edd749f494d9f00eddc4143c81ac3565aa4e551791a
命令注释:-it : 进行交互式操作
-d : 等同于 -d=true,容器将会在后台运行,不然执行一次命令后,退出后,便是exit状态了。
--name : 容器启动后的名字,默认不指定,将会随机产生一个名字。或者使用 -name="containers_name"
centos:使用的镜像名称
进入容器,安装ssh server,以及配置开机启动
[root@docker ~]# docker exec -it test-centos1 /bin/bash
[root@d72250ecaa5e /]# ifconfig
bash: ifconfig: command not found
注:命令最后参数 /bin/bash: 指进入容器时执行的命令(command)
我们检查了下容器,暂时安装以下必用的软件吧 net-tools,openssh-server
[root@d72250ecaa5e /]# yum install openssh-server net-tools -y
创建ssh 所需的目录,并在根目录创建sshd 启动脚本
复制代码
[root@d72250ecaa5e /]# mkdir -pv /var/run/sshd
mkdir: created directory '/var/run/sshd'
[root@d72250ecaa5e /]# cat /auto_sshd.sh
#!/bin/bash
/usr/sbin/sshd -D
[root@d72250ecaa5e /]# chmod +x /auto_sshd.sh
复制代码
修改容器内root 的账户密码
[root@d72250ecaa5e /]# echo "root:iloveworld" | chpasswd
生成ssh 主机dsa 密钥(不然ssh 该容器时,会出现错误。)
[root@d72250ecaa5e /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
[root@d72250ecaa5e /]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
我们加一个history记录的时间功能吧,这样方便后期查看
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
OK,配置基本完毕咯。清理命令历史纪录,之后退出容器。现在可以生成一个新的docker 镜像了。
3.配置完成后,进行打包成新的镜像
复制代码
[root@docker ~]# docker commit test-centos1 centos_sshd:7.0
sha256:6e3330b30dfff5f029f102874e54cfffffbc37dcf2a4eb7304c817148fbc944d
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_sshd 7.0 6e3330b30dff 8 seconds ago 310.1 MB
docker.io/ubuntu latest e4415b714b62 12 days ago 128.1 MB
复制代码
命令注释:commit: 提交一个具有新配置的容器成为镜像,后面跟容器的name 或者容器Id ,最后是生成新镜像的名字
更新:这条命令更方便以后启动,如下:
[root@docker ~]# docker commit --change='CMD ["/auto_sshd.sh"]' -c "EXPOSE 22" test-centos1 centos_sshd:7.0
sha256:7bb4efd82c4ff1f241cbc57ee45aab1b05d214b1e9fcd51196696c67d480e70b
命令注释: --change : 将后期使用此镜像运行容器时的命令参数、开放的容器端口提前设置好。
(5)笔记:Dockerfile构建常见应用镜像
首先,创建对应的工作目录,编写启动脚本,然后定义Dockerfile,基于官方镜像定制你的应用环境。例如,对于Nginx,你需要创建启动脚本和Dockerfile,构建完成后,可以通过镜像启动容器并访问网站。对于Tomcat,同样从创建目录和Dockerfile开始,构建完成后,运行容器并检查其服务状态,通过curl命令验证服务是否可用。...
Docker 镜像&容器的那些操作
镜像获取后,可以使用`docker run`启动容器,如运行routeman/user-api:v1中的bash进行交互。`docker run`在后台运行容器时,会执行一些标准操作,如查看镜像列表、添加-d参数后台运行、使用`docker container rm`删除终止状态的容器等。进入容器可以使用`docker exec -i -t`,这提供了Linux命令提示符。...
Docker的使用&制作Golang微服务镜像并运行
二、使用Docker制作Golang微服务镜像并运行1.准备文件practice.go和Dockerfile文件放同一目录,并进入目录下packagemainimport("github.com/gin-gonic/gin")funcmain(){//创建一个默认的路由引擎r:=gin.Default()//GET:请求方式;/hello:请求的路径//当客户端以GET方法请求/hello路径时,会执行后面的...
Docker提交容器成镜像
test01@test:~$ docker exec -it e63d89aab255 /bin/bash 完成环境配置后,使用Docker命令提交容器:bash docker commit [选项] [容器ID或容器名] [仓库名:标签]其中,`-a`参数用于指定提交者,`-m`参数用于添加提交备注。在上述例子中,命令如下:bash test01@test:~$ docker ps -a CONTAINER...
dockerfile构建多个镜像如何build?
2. 构建自己的centos镜像要从头构建自己的centos镜像,首先创建一个名为Dockerfile的文件。这个文件定义了镜像的构建步骤,如基础镜像的选取,所需软件的安装,以及任何定制化的配置。随后使用`docker build`命令创建镜像。通过`docker run`启动容器,`docker history`查看构建历史,进一步优化镜像。3. CMD与...
如何用Dockerfile创建镜像
1.用save和export的方式将镜像保存为tar包,然后在需要的时候导入tar镜像包 2.将已经配置好的镜像push到我们的私有仓库(docker创建私有仓库)或者已注册过的共有仓库中,需要的时候直接pull下来使用 这两种方式都可以,但是自动化程度低、自由度不够、定制起来比较麻烦。既然如此,那就来说一下更加自动化...
怎么创建docker镜像
编写完Dockerfile后,需要在Dockerfile所在的目录下执行Docker命令构建镜像。命令格式为:`docker build -t 镜像名称:标签 .`。其中,-t参数用于指定镜像的名称和标签,.表示Dockerfile所在的当前目录。执行命令后,Docker会根据Dockerfile中的指令逐步构建镜像。测试和优化镜像 构建完成后,可以运行容器对镜像...
练习:Docker部署镜像
方法一:使用curl指令检查服务器端口的使用情况。若该端口已被docker Nginx占用,则说明镜像已成功运行。方法二:使用docker ps检查正在运行的镜像。若能看到刚刚挂起的nginx01容器,则证明镜像已经在成功运行了。步骤4:使用docker exec进入容器内部。例2:部署tomcat 前面例子是采用docker search来搜索镜像,...
docker - 容器镜像打包
首先,创建的镜像可以通过执行`docker save`命令打包成tar包,便于存储和传输。然后,使用`docker load`指令,这些tar包又可以恢复为完整的镜像。将容器转化为镜像时,你可以使用`docker commit`命令。它接受多个选项,如 `-a` 用于指定提交的镜像作者,`-c` 依赖于Dockerfile来构建镜像,`-m` 用于...
Docker镜像配置深度学习环境(Ubuntu 18.04)
为了实现深度强化学习,需要一个包含 pytorch-cuda 包的基础镜像。通过命令行搜索或网页搜索,找到适合的镜像并下载到本地。下载过程可能需要一定时间,但完成后使用 `docker images` 命令可验证镜像已成功下载。五、根据镜像创建容器 镜像是只读配置文件,而容器是基于镜像运行的实例。在本地环境中根据下载...