Docker 定制容器镜像

 

Window10安装docker

进入控制面板,开启Hyper-V

开启hyper-v

下载并安装docker

下载链接:

https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

安装步骤略(直接下一步即可)

启动并配置docker

桌面找到Docker for Windows快捷方式,双击启动即可。

修改镜像地址:

中国区镜像地址:https://registry.docker-cn.com

阿里镜像地址:https://go33d0dc.mirror.aliyuncs.com

网易镜像地址:http://hub-mirror.c.163.com

 

检查docker是否安装成功

安装成功后进行登录(需在官网注册)

登录命令:docker login

Docker下拉镜像地址

通过命令可以从镜像仓库拉取镜像,命令格式:

docker image pull <repository>:<tag>

       下拉纯Linux镜像,查看本地所有镜像

启动镜像,进入镜像服务器

启动镜像

启动命令:docker run --name linux -it -d ImageId /bin/bash

参数:--name:启动镜像后展示名 -d:镜像id   -it:以交互模式分配伪终端

建议使用特权模式运行容器,这样避免下面服务启动的报错

docker run --name centos7 --privileged=true -it -d ImageId /usr/sbin/init

运行容器,进入容器进行交互

启动命令:docker exec -it   dokerId     /bin/sh

参数:dockerId: 启动容器输出的容器ID  或者容器name

启动之后会进入Linux环境,建议使用passwd进行修改root密码

安装SSH服务,方便进行SSH登录

安装命令: yum install openssh-server -y

修改/etc/ssh/sshd_config:

              PermitRootLogin yes 

              UsePAM no

退出容器,提交容器为新的镜像

提交命令:docker commit  容器ID  centos-ssh

启动镜像,映射端口

将ssh端口22映射到10181

使用命令查看端口是否空闲: netstat -ano |findstr 10181

映射命令:docker run --name centos-python -p 10181:22 --privileged=true -it   -d  ImageId  /usr/sbin/init

使用远程登录工具登录容器 ssh [email protected] -p 10181

进行定制化配置,推送服务器

此处为自己定制所需的服务,如安装python、go、Java等环境,具体步骤略。

定制完成后,提交容器为新镜像,推送服务器

提交命令:docker commit  容器ID  ranphy/centos-python:1.0

推送命令:docker push username/ImageName:version

此处ranphy为docker login时的用户名,否则后面提交镜像时无法成功

 

Docker常用命令

命令

解释

docker pull  镜像:tag

拉默认仓库tag版本号的镜像

docker images

查询本地仓库的所有镜像

docker tag 镜像id 镜像:TAG

重命名镜像

docker save -o 镜像id > xx.tar

导出镜像

docker load -i < xx.tar

导入镜像

docker rmi 镜像id

删除镜像

 

docker ps -a

查询本地所有运行的容器

docker stop 容器id

停止容器运行

docker rm  容器id

删除容器

docker logs -f 容器id

查看容器运行日志

 

 

启动镜像:

docker run --name linux -it -d ImageId /bin/bash

--name:启动镜像后展示名(如linux) -d:镜像id  -it:以交互模式分配伪终端

 

docker run -d -p 10181:22 centos-ssh /usr/sbin/sshd -D

启动镜像,将ssh端口22映射到10181,centos-ssh为镜像name

 

docker run --name centos7 -p 10181:22 --privileged=true -it -d ImageId /usr/sbin/init

以特权模式启动,方便启停服务,建议使用

 

运行容器:

docker exec -it   dokerId /bin/sh

dockerId: 启动容器输出的容器ID或者容器name

提交容器为新的镜像

docker commit  容器ID  centos-ssh

推送镜像到服务器

docker push username/ImageName:version