1、sudo docker ps -a
查看当前docker实例的信息:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2、宿主机和容器之间的数据拷贝:
sudo docker cp shared_dir/data/ CONTAINER ID:/home/xxx/ 或者 sudo docker cp shared_dir/data/ NAMES:/home/xxx/
sudo docker cp CONTAINER ID:/home/xxx/ shared_dir/
3、常用命令
docker container ls -a #查看container信息
docker exec -it containerID bash #进入container
docker run -p 4000:80 imageName #将机器的 4000 端口映射到容器的 80 端口
docker run -d -p 4000:80 imageName # 内容相同,但在分离模式下
docker ps # 查看所有正在运行的容器的列表
docker stop containerID # 平稳地停止指定的容器
docker ps -a # 查看所有容器的列表,甚至包含未运行的容器
docker kill containerID # 强制关闭指定的容器
docker rm containerID # 从此机器中删除指定的容器
sudo docker rm $(sudo docker ps -aq) # 从此机器中删除所有容器
docker images -a # 显示此机器上的所有镜像
docker rmi imagename # 从此机器中删除指定的镜像 sudo
docker rmi $(sudo
docker images -q) # 从此机器中删除所有镜像
docker login # 使用您的 Docker 凭证登录此 CLI 会话
docker tag <image> username/repository:tag # 标记 <image> 以上传到镜像库
docker push username/repository:tag # 将已标记的镜像上传到镜像库
docker run username/repository:tag # 运行镜像库中的镜像
3、制作镜像:
docker build -t imagename Dockerfilepath
# imagename:镜像名称,自定义
# Dockerfilepath:Dockerfile 所在文件夹名称,当前名录为 “.”
如: docker build -t hello_world .
4、运行镜像:
docker run -it --name c_name imagename
-it:可交互
c_name:container名称,自定义
如:
docker run -it --name hello5 hello_world
5、Docker镜像文件导出和导入
-
镜像文件导出
sudo docker save imageid > xxxx.tar
-
镜像文件导入
sudo docker load < xxxx.tar
镜像保存/载入:docker load/docker save;将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。
容器导入/导出:docker import/docker export;将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。
6、启动、停止、重启容器命令:
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id
7、执行docker ps命令,出现 "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. ..."问题
执行sudo service docker start
命令,启动docker服务,返回
docker start/running, process 2662
此时进程启动成功,再执行docker ps
,问题解决
8、从容器中导入和导出及启动
(1):导出容器
如果要导出本地某个容器,可以使用 docker export 命令,导出容器快照到本地文件。
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4391a814370e ubuntu "/bin/bash" 16 hours ago Exited (0) 11 hours ago test
$ sudo docker export 4391a814370e > test_export.tar
(2):导入容器快照
可以使用 docker import 从容器快照文件中再导入为镜像,例如
$ cat test_export.tar | sudo docker import - test2:v1.0
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test2 v1.0 9d37a6082e97 About a minute ago 100.3 MB
(3):使用导入容器生成的镜像,再次生成容器时候需要指定command("/bin/bash")
使用GPU方式:
sudo docker run -ti --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all test2:v1.0 "/bin/bash"
9、重命名镜像:
docker tag f534e2434f94(imageid) llf(repostitory_name):v1.0(tag_flag)