https://docs.docker.com/engine/reference/commandline/build/
用容器生成镜像
1
| docker commit -a "oner" -m "aaa123" 38731354b329 wpa:1.0
|
-a 为作者
-m 为描述信息
38731354b329 运行中的容器的ID
wpa:1.0 生成镜像名:版本号
为本地镜像设置新标签tag
在上传之前,先给本地镜像打个tag标签,相当于重新复制镜像并重命名为docker账户名/仓库名称:新标签名
1 2 3 4
| #docker tag 本地镜像:tagname docker账号/docker仓库:tagname docker tag centos:7 xxx/centos:7.9 # 还可以 docker tag centos:7 xxx/linuxos:centos-v7
|
登录docker仓库
docker login
Username: xxx
Password: yyy
Login Succeeded
上传本地镜像到镜像仓库
1 2
| #docker push docker 账号/仓库名称:tagname docker push xxx/linuxos:centos-v7
|
将一个或多个镜像打包
/diyimages/目录要事先存在
如果不指定镜像的标签tag,会将此镜像的所有标签tag全部打包
1 2 3 4 5 6 7 8
| docker image save nginxsync:1.0 php-fpm > /diyimages/nginxdiy.tar
# 或者 #docker save -o /diyimages/nginxdiy.tar nginxsync:1.0 php-fpm
# 或者 使用 gzip 压缩 #docker save nginxsync:1.0 php-fpm | gzip > /diyimages/myimage_latest.tar.gz
|
导入镜像文件
1 2 3 4 5 6
| docker image load < /diyimages/nginxdiy.tar
# 或者 #docker load -i /diyimages/nginxdiy.tar
#导入的镜像id也与之前一样
|
其它容器命令
1 2 3 4 5 6 7 8
| #输出所有容器的id docker ps -a -q
#强制删除容器(包括正在运行的) docker rm -f 容器名或id
#强制删除所有容器(包括正在运行的) docker rm -f $(docker ps -a -q)
|
在容器外操作容器内的命令
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 先创建一个容器 docker run -itd --name ngtest --hostname nghost nginx:1.24.0
# nginx docker exec -it ngtest /bin/bash -c 'cd /home; echo "hi, I am in docker"'
docker exec -it ngtest /bin/bash -c 'nginx -s reload'
docker exec -it ngtest /bin/bash -c 'service nginx status'
# php-fpm docker exec -it phpfpm4 /bin/bash -c 'supervisord -c /www/supervisor_php.conf'
|