重启docker服务 sudo service docker restart
关闭docker服务 docker service docker stop
开启docker服务 docker service docker start
查看当前运行的容器:docker ps
查询存在的容器:docker ps -a
删除容器:docker -rm CONTAINERID
强制删除容器:docker -rm -f CONTAINERID
不能够删除一个正在运行的容器,会报错。需要先停止容器。
查看镜像:docker images
删除镜像:docker -rmi IMAGEID
强制删除镜像:docker -rmi -f IMAGEID
利用镜像创建容器:docker run --name centos -itd centos:latest
注:-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面,–name指定容器名。
docker run -d -t --name hello-world -p 8762:8762 -v /home/app/hello.jar:/home/app/hello.jar java8 java -jar /home/app/hello.jar --spring.profiles.active=dev
-d 表示在后台启动
-p 8762:8762 表示将容器的端口 映射成宿主主机的端口,否则8762端口访问不到
-v /home/app/hello.jar:/home/app/hello.jar 表示将宿主主机的jar文件,映射到容器中(分号前为宿主主机的路径,分号后为容器中的路径)
--name hello-world表示为该容器取一个全局唯一的名称,这里我取的名称为hello-world
java8 表示镜像文件的名称(为Java镜像重命名后的名称)
java -jar /home/app/hello.jar 表示运行jar包,注意:这里的jar包为容器中的位置,是通过前面的-v属性映射的
--spring.profiles.active=dev 表示spring boot项目配置文件选用dev的配置
如果使用systemctl启动服务需要用下面的方式以超级权限启动,否则会报Failed to get D-Bus connection: Operation not permitted错误:
docker run --name centos -itd --privileged=true centos:latest /usr/sbin/init
进入后台运行的容器:docker exec -it containname /bin/bash
启动容器:docker start containername
停止容器:docker stop containername
停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令: docker rm $(docker ps -a -q)
注:-a标志列出所有容器,-q标志只列出容器的ID,然后传递给rm命令
删除全部image的: docker rmi $(docker images -q)
重命名一个容器:docker rename old_name new_name
要获取所有容器名称及其IP地址:
docker inspect -f ‘{{.Name}} - {{.NetworkSettings.IPAddress }}’ $(docker ps -aq)
进入容器内部后可以使用下面命令获取目前容器的ip:
cat /etc/hosts
在docker容器和宿主机之间复制文件:
切换为root用户然后:
从主机复制到容器 docker cp host_path containerID:container_path
从容器复制到主机 docker cp containerID:container_path host_path