docker

docker操作

2017-02-02  本文已影响35人  wflaugh

systemctl start docker.service

启动docker

docker search centos

从官方仓库搜素centos镜像

docker pull centos

下载镜像

ps aux | grep docker

查看镜像是否启动

docker images

docker ps -a

查看运行了那些容些

docker start id号

根据镜像的id号可以启动它

查看本地游哪些镜像

docker run -it centos /bin/bash

用镜像创建容器,并运行个bash

docker run -d --name hanqiang

在后台运行一个容器,并把这个容器命名为hanqiang

docker run -d --name hanqiang nginx

在后台运行一个nginx镜像,如果本地没有nginx这个镜像的话就自动去docker仓库pull一个

yum install util-linux

可以安装nsenter命令,用这个命令可以进入一个docker。 首先,

docker inspect --format "{{.State.Pid}}" 名称或者id

可以到的这个容器的pid,拿到这个pid后,就可以用下面的命令进入这个容器,下面的3247就是pid

nsenter --target 3247 --mount --uts --ipc --pid

上面的两个命令可以写为一个脚本文件,比如 in.sh 内容如下

#!/bin/bash

CNAME=$1

CPID=$(docker inspect --format "{{.State.Pid}}" $CNAME)

nsenter --target "$CPID" --mount --uts --ipc --net --pid

这样就可以使用如下的命令来进入一个docker容器,mynginx是名称

./in.sh mynginx

如果没有权限执行的话,给他加上755权限

chmod 755 ./in.sh

常用命令

ps aux

ps aux | grep nginx

docker stop 容器id

可以停止一个容器,如果这个容器是在运行状态,如果这个容器是在运行状态那么这个容器是没法删除的,需要先停止再删除

docker rm 容器id

docker ps -l

可以看到你最后一个运行的容器

进入一个官方nginx镜像后,nginx配置文件 是在/etc/nginx/ 下,默认目录是在/usr/share/nginx/html下

docker run -d -P --name mynginx nginx

运行一个nginx容器,并且,把nginx的端口映射出来,本地的端口随机

docker run -d -p 81:80 mynginx2 nginx

用小p来把容器的80端口映射到本地的81端口

docker run -d -p 81:80 -p 90:443 --name mynginx2 nginx

可以映射多个端口

docker run -d --name mynginx4 -h mynginx4 nginx

启动一个容器,并且制定容器的hostname为mynginx4

指定主机的目录映射到对应的docker容器的目录,-v 第一个opt是本地,第2个opt是容器的opt

docker run -it --name mycentos -h mycentos -v /opt:/opt centos

手动创建一个镜像,先搭建环境

docker run -name nginx-man -it centos

进入容器后执行

yum install -y wget gcc gcc-c++ make openssl-devel

查看容器ip

docker inspect nginx | grep IPAddress

查看容器内web应用程序日志

docker logs -f nginx(id或者名称)

查看容器内进程

docker top nginx

关联nginx跟php,注意这里的映射路径nginx跟php必须一样

docker run -d --name nginx -p 80:80 -h nginx -v /opt:/var/www/html -v /nginx:/etc/nginx/conf.d nginx

docker run -d --name php-fpm -p 9000:9000 -h php-fpm -v /opt:/var/www/html php:7.1-fpm

安装php扩展 docker-php-ext-configure, docker-php-ext-install, and docker-php-ext-enable

docker-php-ext-install pdo pdo_mysql

apt-get update && apt-get install -y \

libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev \

libpng12-dev \

&& docker-php-ext-install -j$(nproc) iconv mcrypt \

&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

&& docker-php-ext-install -j$(nproc) gd

安装完以后启用 ,然后重启php服务生效

docker-php-ext-enable pdo pdo_mysql

php7.1下可以通过pecl安装扩展

pecl install redis-3.1.0 \

&& pecl install xdebug-2.5.0 \

&& docker-php-ext-enable redis xdebug

在docker1.13中进入容器可以用

docker exec -it nginx /bin/sh

安装mysql -e为初始化密码123456

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.16

安装redis 参数redis-server --appendonly yes :在容器执行redis-server启动命令,并打开redis持久化配置

docker run -p 6379:6379 --name redis -d redis:3.2.6 redis-server --appendonly yes

可以连接主机的ip运行redis客户端

docker run -it --name rediscli redis:3.2.6 redis-cli -h 172.17.0.1

上一篇下一篇

猜你喜欢

热点阅读