docker的操作示例

一、基本命令

1、docker 查看docker的命令

2、docker pull --help 查具体命令的使用

3、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 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

4、docker run -i -t ubuntu:15.10 /bin/bash 进入ubuntu:15.10系统容器

5、docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 以进程方式运行的容器

一、容器的使用

1、docker ps 查看正在运行的容器

2、 docker stop 容器名/容器id 停止容器

3、docker start 容器名/容器id 开启容器

4、docker restart 容器名/容器id 重启容器

5、docker rm 容器名/容器id 删除容器

docker rm -f 容器名/容器id 强制删除容器

6、docker logs 容器名/容器id 查看容器标准输出

7、当docker容器在 “-d”守护态运行的时候,用户就无法直接进入到容器中去,docker attach 容器id 就会一直卡着。因为此时容器运行的进程是ssh,而不是/bin/bash 也没有虚拟终端(-it)参数,所以是进入不到的。可用: docker exec -it containerID /bin/bash

docker exec -it [容器ID] /bin/bash

二、镜像的使用

  1. docker images 查看镜像列表 等同于docker image ls
  2. docker pull 镜像名 拉取镜像
  3. docker run -i -t ubuntu:15.10 /bin/bash 使用镜像启动容器
  4. 自己构建镜像

一、用Dockerfile文件构建

1、编写Dockerfile文件

2、docker build -t runoob/centos:6.7 . -t 要创建的目标镜像名 . Dockerfile文件的绝对路径

二、更新镜像的方法

1、进入容器内docker run -t -i ubuntu:15.10 /bin/bash

2、在容器内执行apt-get update

3、退出容器exit; 然后

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2

各个参数说明:

  • -m:提交的描述信息
  • -a:指定镜像作者
  • e218edb10161:容器ID
  • runoob/ubuntu:v2:指定要创建的目标镜像名

5.设置镜像标签

docker tag 镜像id ylc/ubuntu:v1 :镜像源名(repository name)和新的标签名(tag)

6.删除镜像

docker rmi 镜像id

docker rmi -f 强制删除

三、示例

1、nginx安装

a、docker pull nginx 从远程拉取nginx镜像

b、在本地新建一个文件夹,文件夹里新建几个文件

cd /test/nginx

新建conf log www的目录

在conf目录新建文件 nginx.conf

在log 目录新建access.log 和error.log文件

在www目录新建index.html文件

c、nginx.conf 内容

user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
    worker_connections 768;
    # multi_accept on;
}
http {
    ##
    # Basic Settings
    ##
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    ##
    # SSL Settings
    ##
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;
    ##
    # Logging Settings
    ##
    access_log /opt/nginx/log/access.log;  
    error_log /opt/nginx/log/error.log;
    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    ##
    # Virtual Host Configs
    ##

    server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /opt/nginx/www;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
        }

    }
}

 

 

注意:

access_log /opt/nginx/log/access.log; error_log /opt/nginx/log/error.log;

root /opt/nginx/www;

都是nginx容器里的路径,因为此nginx.conf 是挂载到容器里的。

index.htm内容

<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> </head> <body> <h2>Hello docker nginx</h2> </body> </html>

 

d、启动nginx容器:

docker run -p 1200:80 --name mynginx -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/www:/opt/nginx/www -v $PWD/log:/opt/nginx/log -d nginx

-p 1200:80:将容器的80端口映射到主机的1200端口 -name mynginx:将容器命名为mynginx -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf -v $PWD/www:/opt/nginx/www:将主机中当前目录下的www挂载到容器的/opt/nginx/www,参考nginx.conf的root配置 -v $PWD/log:/opt/nginx/log:将主机中当前目录下的log挂载到容器的/opt/nginx/log,参考nginx.conf的log配置

注意:要到/test/nginx目录去执行,因为$PWD指当前目录。同时自己也可以挂载更多的文件或者目录

e、当进入到容器后:

用ctrl+p+q退出,不能用exit,否则会关闭容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值