Docker学习笔记

安装docker后,相关下载/信息等在目录/var/lib/docker下:

 

 

获得docker相关信息:

docker --version

docker version

docker info

 

显示当前本地已有的镜像(image):

docker images
# 或
docker image ls

显示当前正在运行的容器(container):

docker container ls
# 或
docker ps

参数:

-q :只显示容器id

-a / --all : 显示所有容器(运行着的和没运行的)

 

显示全部容器:

docker container ls -a
#或
docker container ls --all
# 或
docker ps -a

 

docker ps -l 查询最后一次创建的容器:

Docker学习笔记_第1张图片

 

进入正在运行的容器:

其中字符串为容器ID:

docker exec -it d27bd3008ad9 /bin/bash

docker top :查看容器中运行的进程信息,支持 ps 命令参数。

 

 

 

以下参考:http://www.runoob.com/docker/docker-image-usage.html

搜索镜像:

在网站搜索:https://hub.docker.com/

或者执行:

docker search xxx

 

更新镜像(或者说创建自己的本地镜像):

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

id是容器的id。

参数:

-m :message

-a :author

 

从0开始创建镜像(docker build):

创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像,每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

 

 

创建标签:

使用 docker tag 命令,为镜像添加一个新的标签。id要是镜像id,而不是容器id。

docker tag 860c279d2fec runoob/centos:dev

 

 

网络端口映射:

docker run -d -P training/webapp python app.py
# or
docker run -d -p 5000:5000 training/webapp python app.py
# or
docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
# or
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py # 默认绑定tcp端口,使用udp需要指出

-P :是容器内部端口随机映射到主机的高端口。

-p : 是容器内部端口绑定到指定的主机端口。

 

使用mongodb:

docker run -p 27017:27017  -d mongo:3.2    # 如果端口冲突,可以使用-P代替-p
docker run -it mongo:3.2 mongo --host IP:port  # IP:port换成上面开启的

上面运行了2个容器,一个充当数据库,另一个进行访问。

使用mysql

docker pull mysql:5.6
 docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

使用nginx

docker pull nginx
docker run -p 80:80 --name hg-nginx -d nginx 

docker exec -it hg-nginx /bin/bash  # 进入正在运行的nginx的环境

使用php:

docker pull php:5.6-fpm

docker run -p 9000:9000 --name  myphp-fpm -d php:5.6-fpm
# or
docker run -p 9000:9000 --name  myphp-fpm -v ~/nginx/www:/www -v $PWD/conf:/usr/local/etc/php -v $PWD/logs:/phplogs   -d php:5.6-fpm

参数:

  • -v ~/nginx/www:/www :将主机中项目的目录www挂载到容器的/www

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

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

安装tomcat

docker pull tomcat
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat  

安装python

在~/python/myapp目录下创建一个 helloworld.py 文件

#!/usr/bin/python
print("Hello, World!");
docker pull python:3.5
docker run  -v $PWD/myapp:/usr/src/myapp  -w /usr/src/myapp python:3.5 python helloworld.py

-w /usr/src/myapp :指定容器的/usr/src/myapp目录为工作目录

安装redis:

docker pull  redis:3.2
docker run -p 6379:6379 -v $PWD/data:/data  -d redis:3.2 redis-server --appendonly yes

使用redis镜像执行redis-cli命令连接到刚启动的容器,主机IP为172.17.0.1


docker exec -it 43f7a65ec7f8 redis-cli
172.17.0.1:6379> info

安装apache

docker pull httpd
docker run -p 80:80 -v $PWD/www/:/usr/local/apache2/htdocs/ -v $PWD/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf -v $PWD/logs/:/usr/local/apache2/logs/ -d httpd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在删除docker镜像之前,一定要先删除与之有关的容器。删除容器时,容器必须是停止状态.

你可能感兴趣的:(docker)