查看当前Docker的版本
docker version
查看当前系统Docker信息
docker info
查看宿主机上的镜像
Docker镜像保存在/var/lib/docker目录下:
docker images
从Docker hub上下载某个镜像:
docker pull ubuntu:latest
执行docker pull ubuntu会将Ubuntu这个仓库下面的所有镜像下载到本地repository。
启动一个容器使用docker run:
#启动一个容器
docker run -i -t ubuntu /bin/bash
#容器退出后立即删除该容器使用--rm
docker run -i -t --rm ubuntu /bin/bash
#指定容器的名称使用--name,否则会随机分配一个名称
docker run -t -i --name test_container ubuntu /bin/bash
#容器以Host方式进行网络通信使用--net=host
docker run -t -i --net=host ubuntu /bin/bash
#绑定挂在一个Volume,在宿主机和Docker容器中共享文件或目录使用-v
docker run -t -i -v /host:/container ubuntu /bin/bash
查看当前有哪些容器正在运行
使用
docker ps
输出如下:
zzq@host:~(0)$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50a1261f7a8b docker_test:latest "/bin/bash" 7 seconds ago Up 6 seconds test_container
#目前只有一个container id为50a1261f7a8b的容器正在运行
启动或停止某个container
使用
docker start/stop container_id:
输出如下:
zzq@host:~(0)$ docker stop 50a1261f7a8b
50a1261f7a8b
zzq@host:~(0)$ docker ps -a | grep 50a1261f7a8b
50a1261f7a8b docker_test:latest "/bin/bash" 2 minutes ago Exited (0) 14 seconds ago sleepy_ptolemy
#执行docker stop后,该容器的状态变更为Exited
保留container的修改作为一个新的镜像
使用
docker commit
比如:
使用命令
docker commit -m="test docker commit" 50a1261f7a8b docker_test
-m是提交的信息
50a1261f7a8b是需要保留修改容器的id
docker_test是容器的名称
输出如下:
zzq@host:~(0)$ docker commit -m="test docker commit" 50a1261f7a8b docker_test
55831c956ebf46a1f9036504abb1b29d7e12166f18f779cccce66f5dc85de38e
zzq@host:~(0)$ docker images | grep docker_test
docker_test latest 55831c956ebf 10 seconds ago 290.7 MB
Dockerfile创建一个镜像
除了从Docker hub上下载镜像,也可以写Dockerfile创建一个镜像,以创建一个Django程序为例,Dockerfile内容如下所示:
FROM ubuntu:12.04
MAINTAINER Your Name
RUN apt-get update
RUN apt-get install -y python-software-properties python-pip
ADD myproject /opt/code
RUN pip install -r /opt/code/requirement.txt
写完Dockerfile,在Dockerfile所在目录执行docker build创建镜像并启动Django服务:
docker build -t docker_test .
docker run -i -t docker_test /bin/bash -c "cd /opt/code;python manage.py runserver 0.0.0.0:8080"
将制作的镜像上传到private registry
test是镜像版本,不指定则为latest。
docker.example.com是仓库的地址
test是远程仓库的目录
使用命令
docker tag test docker.example.com/test
docker push docker.example.com/test
删除镜像
经过长时间使用,主机上存储了很多已无用的镜像,想将它们删除则用docker rm或者docker rmi,比如:
docker rm container_id
docker rmi image_id |