docker入门

1. 环境搭建

Win10 Docker 安装使用

2. 验证环境

docker version

docker run hello-world

3. Docker hello world

3.1 docker run:

(1)使用 docker run 命令来在容器内运行一个应用程序

docker run ubuntu:15.10 /bin/echo "Hello world"

(2)运行交互式的容器

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

(3)后台模式启动容器

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

4. 命令

4.1 容器命令

1)使用docker ps命令,查看运行中的容器

docker ps 

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

docker logs 2b1b7a428627

3)使用docker stop 命令来停止容器

docker stop 25c534bc75f6
docker stop sharp_franklin

4)docker清理命令

杀死所有正在运行的容器

docker kill $(docker ps -a -q)

删除所有已经停止的容器

docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像

docker rmi $(docker images -q -f dangling=true)

删除所有镜像

docker rmi $(docker images -q)

4.2 镜像命令 

1)列出镜像列表

docker images

2)获取一个新的镜像

docker pull ubuntu:13.10

3)查找镜像

docker search httpd

4)拉取镜像

docker run -d -P httpd

5)创建镜像

当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

  • 从已经创建的容器中更新镜像,并且提交这个镜像
  • 使用 Dockerfile 指令来创建一个新的镜像

6)更新镜像

使用镜像来创建一个容器、

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

通过命令 docker commit来提交容器副本

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

查看新镜像

docker images

使用新镜像

docker run -t -i yeahwell/ubuntu:v2 /bin/bash

 7)构建镜像

5. 容器使用

5.1 运行training/webapp

1)在docker容器中运行一个 Python Flask 应用来运行一个web应用

docker run -d -P training/webapp python app.py

指定 -p 标识来绑定指定端口

docker run -d -p 5000:5000 training/webapp python app.py

2)查看到容器的端口映射

docker port 7a38a1ad55c6

docker port determined_swanson

3)查看WEB应用程序日志

docker logs -f 7a38a1ad55c6

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

docker top determined_swanson

5)检查WEB应用程序

docker inspect determined_swanson

6)停止WEB应用容器

docker stop determined_swanson

7)重启WEB应用容器

docker start determined_swanson

8)查询最后一次创建的容器

docker ps -l

9)移除WEB应用容器

docker rm determined_swanson

 5.2 docker安装nginx

1)查找Docker Hub上的nginx镜像

docker search nginx

2)拉取官方的镜像

docker pull nginx

3)运行容器

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

5.3 docker 安装redis

1)查找容器

docker search  redis

2)下载容器

docker pull  redis:3.2

3)运行容器

docker run -d --name redis -p 6379:6379 redis

5.4 docker安装RabbitMQ

参考:用Docker镜像来学习RabbitMQ和Python客户端使用例子

1)安装容器

docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p 25672:25672 rabbitmq:3-management

2)登录管理页面

localhost:15672
username:guest
password:guest

 5.5 docker安装zookeeper

1)安装容器

docker pull jplock/zookeeper:3.4.8 

2)运行容器

 docker run -d -p 2181:2181 jplock/zookeeper

5.6 docker安装myql

1)安装容器

docker pull mysql:5.6

2)运行容器

docker run -p 3306:3306 --name mysql5.6 -v D:/dockerfile/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v D:/dockerfile/mysql/logs:/logs -v D:/dockerfile/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=od -d mysql:5.6

mysqld.cnf配置如下:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
lower_case_table_names=1
#log-error      = /var/log/mysql/error.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-storage-engine=INNODB
character_set_server=utf8
init_connect='SET NAMES utf8'

 5.7 docker安装ftp服务器

1)安装容器

docker pull bogem/ftp

2)运行容器

docker run -d -v D:/dockerfile/ftpdata:/home/vsftpd -p 20:20 -p 21:21 -p 47400-47470:47400-47470 -e FTP_USER=test -e FTP_PASS=test -e PASV_ADDRESS=0.0.0.0 --name ftp1 --restart=always bogem/ftp
原文地址:https://www.cnblogs.com/yeahwell/p/7840911.html