常用命令docker version # 显示docker的版本信息 docker info # 显示docker的系统信息,包括镜像和容器的数量 docker 命令 --help # 帮助命令 帮助文档地址 https://docs.docker.com/engine/reference/commandline/commit/ docker容器内存限制,参考链接:https://www.cnblogs.com/sharesdk/p/10109105.html?ivk_sa=1024320u-m 256M --memory-swap 512M -m, --memory # 内存限制大小,单位可以为 b,k,M,g;最小为4M --memory-swap # 内存+交换分区大小总限制1、镜像相关命令。docker images # 列出本地主机上的镜像。 docker pull # 获取一个新的镜像 docker search # 命令来搜索镜像 docker rmi # 删除镜像 我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/ 2、容器相关命令docker run -itd centos /bin/bash # 启动容器 -i: 交互式操作。 -t: 终端。 -d:后台运行。 centos: centos 镜像。 /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 docker exec -it <容器 ID> /bin/bash # 进入容器 exit # 退出容器 docker ps -a # 查看所有的容器 docker stop <容器 ID> # 停止容器 docker start <容器 ID> # 启动一个已停止的容器 docker restart <容器 ID> # 重启一个容器 docker rm -f <容器 ID> # 删除一个容器,-f表示强制删除(运行中的都能删掉) docker rm -v [容器id或名] 删除容器及其数据卷 docker container prune # 清理掉所有处于终止状态的容器 # -p 标识来指定容器端口绑定到主机端口 -P :是容器内部端口随机映射到主机的高端口。 -p : 是容器内部端口绑定到指定的主机端口。 docker port <容器 ID> # 查看容器的端口映射的快捷方式 docker export <容器 ID> > ./ubuntu.tar # 导出容器 cat ubuntu.tar | docker import - test/ubuntu:v1 # 导入容器# 登录dockerhub docker login # 标记镜像 docker tag yqsh/mysql-centos:2.0 18908046013/mysql-centos:1.0 # 推送镜像 docker push 18908046013/mysql-centos:1.0 # 搜索镜像 docker search 18908046013/mysql-centos3、创建镜像 当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。 1、从已经创建的容器中更新镜像,并且提交这个镜像 2、使用 Dockerfile 指令来创建一个新的镜像 ①更新镜像 runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 各个参数说明: -m: 提交的描述信息 -a: 指定镜像作者 e218edb10161:容器 ID runoob/ubuntu:v2: 指定要创建的目标镜像名 我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2 ②构建镜像 创建一个 Dockerfile 文件 runoob@runoob:~$ cat Dockerfile FROM centos:6.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 然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。 runoob@runoob:~$ docker build -t runoob/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "fisher@sudops.com" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo "root:123456" |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd runoob ...... 参数说明: -t :指定要创建的目标镜像名 . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径 我们可以使用新的镜像来创建容器 runoob@runoob:~$ docker run -t -i runoob/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id runoob uid=500(runoob) gid=500(runoob) groups=500(runoob) 从上面看到新镜像已经包含我们创建的用户 runoob。 设置镜像标签 我们可以使用 docker tag 命令,为镜像添加一个新的标签。 runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。 使用 docker images 命令可以看到,ID为860c279d2fec的镜像多一个标签。 runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB runoob/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 13 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB