Docker命令笔记

 

目录

卸载Docker

安装Docker前安装必要工具

添加软件信息

更新yum缓存

安装Docker-ce

启动Docker后台服务

Docker镜像加速

删除Docker-ce

查看Docker命令选项

查看子命令用法

测试运行hello-world

运行ubuntu

运行交互式的容器

后台模式启动容器

查看正在运行的容器

停止容器

查看容器内的标准输出

下载镜像

将容器使用的端口映射到主机上

查看端口映射情况

查看WEB应用程序日志

查看WEB应用程序容器的进程

重启容器

移除容器

查看镜像列表

更新镜像

构建镜像

使用 nginx 镜像


卸载Docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

安装Docker前安装必要工具

yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件信息

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum缓存

yum makecache fast

安装Docker-ce

yum -y install docker-ce

启动Docker后台服务

systemctl start docker

Docker镜像加速

编辑/etc/docker/daemon.json文件,下述示例代码中的URL可能无效,可从 https://cr.console.aliyun.com/cn-shenzhen/mirrors 获取

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

删除Docker-ce

yum remove docker-ce
rm -rf /var/lib/docker

查看Docker命令选项

docker

查看子命令用法

docker <command> --help

测试运行hello-world

docker run hello-world

运行ubuntu

docker run ubuntu:15.10 /bin/echo "Hello world"
  • docker: Docker 的二进制执行文件。

  • run:与前面的 docker 组合来运行一个容器。

  • ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

  • /bin/echo "Hello world": 在启动的容器里执行的命令

运行交互式的容器

docker run -i -t ubuntu:15.10 /bin/bash
  • -t:在新容器内指定一个伪终端或终端。

  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。

后台模式启动容器

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

在输出中,我们没有看到期望的"hello world",而是一串长字符

2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。

首先,我们需要确认容器有在运行,可以通过 docker ps 来查看

在容器内使用docker logs命令,查看容器内的标准输出:

docker logs 2b1b7a428627

查看正在运行的容器

docker ps

停止容器

docker stop xxx

xxx可以是容器ID,也可以是容器名。

查看容器内的标准输出

docker logs 2b1b7a428627

下载镜像

docker pull hello-world

将容器使用的端口映射到主机上

启动容器时加一个参数,-P

docker run -d -P ......

配置指定的端口:

docker run -d -p 5000:5000 ......

查看端口映射情况

docker port 7a38a1ad55c6

查看WEB应用程序日志

docker logs -f 7a38a1ad55c6

查看WEB应用程序容器的进程

docker top determined_swanson

重启容器

docker restart xxx

移除容器

docker rm determined_swanson

查看镜像列表

docker images

更新镜像

运行并进入容器

docker run -t -i ubuntu:15.10 /bin/bash

更新

apt-get update

退出容器

exit

提交

docker commit -m="has update" -a="mirsual" e218edb10161 mirsual/ubuntu:v2
  • -m:提交的描述信息

  • -a:指定镜像作者

  • e218edb10161:容器ID

  • runoob/ubuntu:v2:指定要创建的目标镜像名

查看镜像

docker images

构建镜像

创建 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

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。

然后执行如下命令构建镜像:

docker build -t runoob/centos:6.7 .
  • -t :指定要创建的目标镜像名

  • . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

使用 nginx 镜像

docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs  -d nginx
  • -p 80:80:将容器的80端口映射到主机的80端口

  • --name mynginx:将容器命名为mynginx

  • -v $PWD/www:/www:将主机中当前目录下的www挂载到容器的/www

  • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf

  • -v $PWD/logs:/wwwlogs:将主机中当前目录下的logs挂载到容器的/wwwlogs

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值