docker操作
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