docker常用命令
docker pull
docker run -d -it --rm -h host_ubuntu -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/nginx-conf/conf.d:/etc/nginx/conf.d -v ~/nginx/nginx-log:/var/log/nginx -p 15672:15672 -p 5672:5672 --network test-net --dns=114.114.114.114 --dns-search=test.com --link 另一个容器 ubuntu 具体命令
启动容器
参数说明:
-t: 在新容器内指定一个伪终端或终端。
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
--rm:容器退出时自动清理容器内部的文件系统。
-h HOSTNAME 或者 --hostname=HOSTNAME: 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。
--dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。
--dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。
如果在容器启动时没有指定 --dns 和 --dns-search,Docker 会默认用宿主主机上的 /etc/resolv.conf 来配置容器的 DNS。
-d 后台运行 再次进入需要用docker exec因为此命令进入后退出容器终端,不会导致容器的停止。
-p 参数来设置端口映射
-P:将容器内部使用的网络端口随机映射到我们使用的主机上。
--network:并连接到新建的 test-net 网络。
-v :挂载,将主机项目中的目录挂载到容器的/usr/share/nginx/html,将nginx配置文件挂载到/etc/nginx/conf.d,将nginx日志文件挂载到/var/log/nginx
--link my-php:php:nginx链接php,把php的网络并入nginx
docker ps
docker ps –no-trunc //不省略可查看详细的command
查看我们正在运行的容器 docker top 来查看容器内部运行的进程
docker images
列出本地主机上的镜像。
docker exec 容器Id或名称 (docker attach 不推荐退出会终止容器)
进入容器
docker inspect 容器Id或名称
查看容器信息
docker logs -f 容器Id或名称
在宿主主机内使用 docker logs 命令,查看容器内的标准输出
-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。
docker rm -f 容器Id或名称
docker rmi
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
各个参数说明:
-m: 提交的描述信息
-a: 指定镜像作者
e218edb10161:容器 ID
runoob/ubuntu:v2: 指定要创建的目标镜像名
docker tag 860c279d2fec runoob/centos:dev
为镜像添加一个新的标签。
docker network create -d bridge test-net
创建一个新的 Docker 网络。
-d:参数指定 Docker 网络类型,有 bridge、overlay。
docker network list //列出所有网络
docker network connect 网络名称 容器名称 //添加容器到网络
也可以通过docker-compose也可以实现
docker push (username)/ubuntu:18.04
用户登录后,可以通过 docker push 命令将自己的镜像推送到 Docker Hub。
docker简单安装rabbitmq
#下载镜像
docker pull rabbitmq
# 启动镜像
docker run --name rabbitmq -p 15672:15672 -p 5672:5672 -d rabbitmq:latest
# 进去镜像实例中安装管理界面
docker exec -it rabbitmq bash
# 镜像实例中输入命令安装管理台
rabbitmq-plugins enable rabbitmq_management
使用Docker快速搭建PHP开发环境
https://www.cnblogs.com/cocowool/p/docker-php-dev.html
一个基于docker的LNMP环境,并利用electron + vue 提供gui管理(目前只处理了window环境和mac环境,后续支持linux)
https://gitee.com/ao-lol/docker_lnmp
nginx配置文件参考
server {
listen 80;
listen [::]:80;
server_name *****
rewrite ^/(.*) https://*****/$1 permanent;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 443;
server_name *****;
# nginx的共享路径
root /data/ds/ds/public;
access_log /var/log/nginx/ds_access.log;
error_log /var/log/nginx/ds_error.log;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
# 需保证2个容器网络相通可通过docker-compose.yaml设置同一个network来保证网络,项目文件挂载,用php容器内部文件路径
fastcgi_pass php-ds:9000;
fastcgi_index index.php;
# php的共享路径
fastcgi_param SCRIPT_FILENAME /app/wwwroot/ds/public$fastcgi_script_name;
include fastcgi_params;
# 如果域名中启用了SSL这里一定要设置为HTTPS on
fastcgi_param HTTPS on;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
调运laravel的php脚本
docker exec -i php-ds sh -c "php /app/wwwroot/ds/artisan remind_visit_overture"
* * * * * docker exec -i php-ds sh -c "php /app/wwwroot/ds/artisan schedule:run >> /dev/null 2>&1"