安装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 查询最后一次创建的容器:
进入正在运行的容器:
其中字符串为容器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镜像之前,一定要先删除与之有关的容器。删除容器时,容器必须是停止状态.