二、Docker 容器操作
1、查看
查看已经启动的容器:docker ps
查看全部容器:docker ps -a
检测已经启动的容器的状态:docker stats
查看已经启动的容器的ids:docker ps -q
查看最后一个创建的容器:docker ps -l
2、创建容器
创建容器并进入容器: docker run -i -t ubuntu:15.10 /bin/bash
-
-
-t: 在新容器内指定一个伪终端或终端。
-
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
-
ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
-
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
-
创建一个指定名称(ubuntu-test)后台运行的容器:docker run -itd --name ubuntu-test ubuntu /bin/bash
-
- 加了 -d 参数默认不会进入容器
- 容器命名:docker run -d -P --name runoob training/webapp python app.py
- --name 标识来命名容器
3、启动容器
启动容器:docker start (CONTAINER ID),例如 docker start cf2cb52b7593
重启容器:docker restart (CONTAINER ID)
4、进入容器,在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
进入容器,退出容器终端后容器停止:docker attach (CONTAINER ID)
进入容器,退出容器终端后容器不会停止:docker exec -it (CONTAINER ID)或者 (NAMES) /bin/bash
5、停止容器
停止容器:docker stop (CONTAINER ID)
6、查看容器日志
查看容器日志:docker logs (CONTAINER ID)
7、删除容器
删除容器使用rm命令,-f 强制删除,运行中的容器也是可以删除的:docker rm -f (CONTAINER ID)
清理掉所有处于终止状态的容器:docker container prune
8、导出导入容器
导出容器:docker export (CONTAINER ID) > 路径/name.tar
导入容器:cat 路径/name.tar | docker import - test/ubuntu:v1,可以通过docker images查看镜像是否导入成功
三、仓库管理 Docker Hub
docker 仓库是用来存放镜像的地方
- 注册:输入用户名,邮箱,密码,人机身份验证
- 登录仓库:docker login
- 退出仓库:docker logout
- 搜索仓库中的镜像:docker search (镜像名称)
- 从仓库中拉取镜像:docker pull (镜像名称)
- 推送镜像到仓库中:docker push(镜像名称)
-
例子 $ docker tag ubuntu:18.04 username/ubuntu:18.04 $ docker image ls REPOSITORY TAG IMAGE ID CREATED ... ubuntu 18.04 275d79972a86 6 days ago ... username/ubuntu 18.04 275d79972a86 6 days ago ... $ docker push username/ubuntu:18.04 $ docker search username/ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED username/ubuntu
-
四、Docker 镜像使用
当运行容器时,使用的镜像如果在本地不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载
-
列出镜像列表
- docker images
- REPOSITOPY: 表示镜像的仓库源
- TAG: 镜像的标签
- IMAGE ID: 镜像ID
- CREATED: 镜像创建时间
- SIZE: 镜像大小
- 同一个仓库源可以有多个TAG,代表这个仓库源的不同版本,比如ubuntu15.10、13.10等多个版本
- docker run -t -i ubuntu:15.10 /bin/bash
- docker images
-
获取一个新的镜像
- docker pull ubuntu:13.10
-
查找镜像
- Docker Hub 网址:https://hub.docker.com/
- docker search (镜像名称)
-
删除镜像
- docker rmi (镜像名称)
-
创建镜像
- 更新镜像,从已经创建的容器中更新镜像,并且提交这个镜像
- 先创建一个容器:docker run -t -i ubuntu:15.10 /bin/bash
- 更新镜像:apt-get update
- 提交容器副本,创建新的镜像:docker commit -m="has update" -a="runoob" (CONTAINER ID)runoob/ubuntu:v2
- -m: 提交的描述信息
- -a: 指定镜像作者
- runoob/ubuntu:v2: 指定要创建的目标镜像名
- 构建镜像
- 先创建一个 Dockerfile 文件
- 每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
- 第一条FROM,指定使用哪个镜像源
- RUN 指令告诉docker 在镜像内执行命令,安装了什么
- 例:
runoob@runoob:~$ cat Dockerfile FROM centos:7 MAINTAINER Fisher "fisher@sudops.com" RUN /bin/echo 'root:123456' |chpasswd RUN useradd runoob RUN /bin/echo 'runoob:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D
- 通过 docker build 命令来创建一个镜像
-
docker build -t runoob/centos:7 .
-
- 先创建一个 Dockerfile 文件
- 更新镜像,从已经创建的容器中更新镜像,并且提交这个镜像
-
使用镜像创建一个容器
- docker run -t -i -d (指定镜像名) /bin/bash
-
设置镜像标签(设置一个容易识别的tag)
- docker tag (CONTAINER ID)runoob/centos:dev