Docker

摘要:记录Docker中常用操作及配置

Docker 配置检查

内核版本

Centos内核版本未3.1以上。系统要是64位系统

uname -r

卸载旧的文件

​ rm -rf /var/lib/docker

Docker安装

安装依赖软件包

​ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
​ 查看是否已经安装了这个
​ rpm -qa|grep device-mapper-persistent-data
​ rpm -qa|grep lvm2

设置yum源

yum-config-manager \

--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看可安装的版本

​ yum list docker-ce --showduplicates | sort -r

安装对应的版本

安装指定版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
安装最新版
sudo yum install docker-ce docker-ce-cli containerd.io

查看版本

​ docker version

启动docker设置为开机启动

​ systemctl enable docker

启动docker

​ systemctl start docker

注册阿里容器镜像服务

配置镜像

cd /etc/docker
    ls
    vim daemon.json
      之后可以很快的进行处理
      {"registry-mirrors":["https://gvky2tl9.mirror.aliyuncs.com/"]}
      重启
      $ sudo systemctl daemon-reload
      $ sudo systemctl restart docker

查看本地镜像

docker image ls

查看源信息是否改为阿里

docker info

扩展

不能在windows下跑的原因:

· 1、LXC 是基于Linux的
· 2、Namespace 资源隔离
· 3、cgroup 资源限制
· 4、AUFS

常用命令

跑一个docker

docker run --name mysql -d -p 6666:3306 -e MYSQL_EOOT_PASSWOD=1234 mysql:5.7

查看运行的Docker容器

docker container ps -a

删除容器

docker container rm -f 容器名

进入指定的容器

docker continer exec -it mysql /bin/bash

查看容器的挂载

docker inspect mysql 里面的Mounts

LNMP环境配置

PHP

启动容器

docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm

Nginx

挂载启动

docker run --name runoob-php-nginx -p 8083:80 -d \
    -v ~/nginx/www:/usr/share/nginx/html:ro \
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
    --link myphp-fpm:php \
    nginx

新增配置文件

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        # 此处注意需要$fastcgi_script_name之前必须为/var/www/html 测试了用下面的也行
        fastcgi_param  SCRIPT_FILENAME  /root/nginx/www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

常见错误

启动失败!500 Server Error: Internal Server Error ("driver failed programming external connectivity on endpoint runoob-php-nginx (349cb6c0124f54720b8acfd5a8097916a6b65554e0c28c1de201a174eba39afe): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8083 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name. (exit status 1))")

systemctl restart docker

!500 Server Error: Internal Server Error ("Cannot link to a non running container: /myphp-fpm AS /runoob-php-nginx/php")

评论