常规命令
docker version
docker info
docker a --help #check all docker command, 'a' can be any command name
systemctl status docker #not for window version
镜像
docker images #show all images in local
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest bf3dc08bfed0 5 weeks ago 76.2MB
joyce_ubuntu latest 4dbd29ee1620 6 weeks ago 255MB
ubuntu/nginx latest 2c88c268447f 7 weeks ago 137MB
nginx/docker-extension 0.0.3 41d3d0d7d940 13 months ago 7.53MB
docker images --help #check command options
-q #only show image ID
docker search ubuntu #search Image which name contains ubuntu
docker pull xxx:yyy #download image : xxx, image name; yyy, image tag
docker rmi -f imageId #delete image
docker build -f dockerfile -t imageName:tag #build image
镜像的导入导出
基础镜像的制作(再次导入会丢失镜像的历史)
docker export containerId > imageName.tar
docker import - newImageName < imageName.tar
另一方法
docker save ImageId > NewImage.tar
docker save -o NewImage.tar image1:tag image2:tag
docker load < NewImage.tar
两个方法不能混用。
Save出的镜像文件大一些;import 可以重命名镜像;save可以把多个镜像打包成一个。
容器
docker run -it image:tag
docker run --name="container name" -p 8899:22 -it image:tag
-it #使用交互方式
-p #指定容器端口
docker ps #list container
docker rm containerId #delete container
docker rm -f containerId #delete running container
docker ps -aq|xargs docker rm #delete all container
docker start containerId
docker restart containerId
docker stop containerId
docker kill containerId
docker top containerId #查看容器内部进程
docker commit container-name new-image-name #build new image based on container
dockre run 指定端口有四种方式
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
容器端口
进入正在运行的容器
docker exec -it containerId /bin/bash
docker attach containerId
容器拷贝文件
docker cp containerId:/folder/fileName targetFolder
docker cp localFilePath contianerId:/folder
第二行命令是从本地拷贝一个文件到容器