Docker系列(二)镜像下载、操作容器、镜像导入导出等操作
一、镜像操作
-
列出镜像
$sudo docker images
-
从dockerhub检索image
$docker search image_name
-
下载image
$docker pull image_name
#从指定位置下载
$docker pull hub.c.163.com/library/centos:latest
#从私人仓库下载
$docker pull 127.0.0.1:5000/centos:latest
-
删除一个或者多个镜像;
$docker rmi image_name
-
显示一个镜像的历史;
$docker history image_name
-
发布docker镜像
$docker push new_image_name
#发布到本地仓库(前提是已经搭建好了registry)
$docker push 127.0.0.1:5000/new_image_name:1.0
ps:要发布到私有Registry中的镜像,在镜像命名中需要带上Registry的域名(如果非80端口,同时需要带上端口号)比如:
$docker push dockerhub.yourdomain.com:443/hello.demo.kdemo:v1.0
- 修改镜像名:
docker tag imageid name:tag
上传到本地仓库,常需要修改tag,使之与仓库ip保持一致,eg:
docker tag imageid 127.0.0.1:5000/name:tag
二、对容器的操作:
- 启动容器:
docker run -d -p 58080:8080 --name javaweb lin_javaweb:0.1
- 查看运行的容器
docker ps
- 查看已退出的容器
docker ps -a
- 进入容器内部:
#前提是容器已经run
docker exec -it id /bin/bash (or /bin/sh)
# 从容器内部跳出
exit
- run docker并且挂载:
docker run -i -t -v /usr/local/test_docker/:/mnt/software/ 85364ad506e1 /bin/bash
docker run -d -p 58080:8080 -v /usr/local/tomcat/webapps:/usr/data/tomcat/webapps –net=host --name javaweb lin_javaweb:0.1
#--net=host 允许连接外部网络
- 停止运行的容器:
docker stop 容器名或容器ID
- 恢复运行
docker start 容器ID
- 提交已退出的容器为镜像
docker commit 容器ID aoct/apache2:0.1
- 查看容器内部详情细节:
$docker inspect <id/container_name>
- 显示一个运行的容器里面的进程信息
$docker top Name/ID
三、容器批量操作
1、停用全部运行中的容器:
docker stop $(docker ps -q)
2、删除全部容器:
docker rm $(docker ps -aq)
3、一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
四、镜像导入导出
- 导出docker:
docker save -o java8.tar lwieske/java-8
- 导入docker:
docker load < java8.tar
五、宿主与容器之间文件的拷贝
- 从容器内拷贝文件到主机上:
docker cp <containerId>:/file/path/within/container /host/path/target
- 从主机上拷贝文件到容器内:
用-v挂载主机数据卷到容器内方式进行拷贝。
docker run -v /path/to/hostdir:/mnt $container
#在容器内拷贝
cp /mnt/sourcefile /path/to/destfile