http://www.360doc.com/content/22/0303/10/64728681_1019782581.shtml进入容器:docker attach CONTAINER
1.1 安装
curl -fsSL
https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
# 自动安装
curl -fsSL
https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
# 自动安装
curl -sSL
https://get.daocloud.io/docker | sh
# 手动安装 - 成功率不高
wget
https://download.docker.com/linux/debian/dists/buster/pool/stable/arm64/docker-ce_19.03.8~3-0~debian-buster_arm64.debsudo dpkg -i docker-ce*.deb
sudo apt -f install
1.2 配置镜像加速器
登陆 阿里云
在 容器镜像服务管理台 中拿到镜像加速地址
写到docker的配置文件当中
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0yrrserh.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
自启 / 重启 / 关闭 / 状态
systemctl start docker
systemctl restart docker
systemctl stop docker
systemctl status docker
1.创建自定义网络
$ docker network create --subnet=172.18.0.0/16 es-network
$ docker network ls
.参数说明:
-d:容器在后台运行;
-p 9000:9000 :宿主机9000端口映射容器中的9000端口
–restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。
–restart=always:自动重启该容器
-v /usr/local/portainer/public:/public:把宿主机的汉化配置文件挂载到容器相应目录
-v /var/run/docker.sock:/var/run/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中
-v portainer_data:/data :把宿主机portainer_data数据卷挂载到容器/data目录
–name portainer : 给容器起名为portainer
============================================
docker pull portainer/portainer:linux-arm64
docker volume create portainer_data
docker run -d --name=portainer --restart always -e TZ=Asia/Shanghai -p 10000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:linux-arm64
==================================
https://www.cnblogs.com/HGNET/p/13377043.htmlDocker Web#
给 Docker 添加可视化界面
# 忽略
docker rm Portainer -f
docker volume rm Portainer_data
# 创建卷
docker volume create Portainer_data
# 运行
docker run -d \
--name=Portainer \
--restart always \
-e TZ=Asia/Shanghai \
-p 10000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v Portainer_data:/data \
portainer/portainer:linux-arm64
# 参数:
-d:后台运行
--name Portainer # 容器名称
--restart always # 开机自启
-e TZ=Asia/Shanghai # 设定时区
-p 10000:9000 # 宿主机 10000 端口映射容器的 9000 端口
-v /var/run/docker.sock:/var/run/docker.sock: # 把宿主机的 Docker 守护进程 (Docker daemon) 默认监听的 Unix 域套接字挂载到容器中。
-v Portainer_data:/data: # 把宿主机 Portainer_data 数据卷挂载到容器 /data 目录
#
https://portainer.readthedocs.io/en/stable/deployment.html#重启docker
systemctl daemon-reload
systemctl restart docker
#查看docker是否运行成功
ps -ef |grep docker
docker pull mysql/mysql-server
mkdir -p /home/data/mysql
mkdir -p /home/mysql
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qq165s8 -v /home/data/mysql:/var/lib/mysql -d mysql/mysql-server
docker cp mysql:/etc/my.cnf /home/mysql/
docker stop mysql
docker rm mysql
=============
--net es-network --ip 172.18.0.3
=============
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qq165s8 -v /home/mysql/my.cnf:/etc/my.cnf -v /home/data/mysql:/var/lib/mysql -d mysql/mysql-server
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qq165s8 -v /home/mysql/my.cnf:/etc/my.cnf -v /home/data/mysql:/var/lib/mysql -d --net es-network --ip 172.18.0.3 mysql/mysql-server
mkdir -p /home/mbdata
mkdir -p /home/mbdata/mysql
mkdir -p /home/mbdata/conf
docker cp mysql:/etc/my.cnf /home/mbdata/conf/
docker run --name mbmysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=qq165s8 -v /home/mbdata/conf/my.cnf:/etc/my.cnf -v /home/mbdata/mysql:/var/lib/mysql -d --net es-network --ip 172.18.0.6 mysql/mysql-server
docker exec -it mysql bash
mysql -u root -p
qq165s8
#授权
mysql>CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql>GRANT ALL ON *.* TO 'root'@'%';
#刷新权限
mysql> flush privileges;
#修改root用户密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'qq165s8.com';
#刷新权限
mysql> flush privileges;
mysql> grant all privileges on *.* to root@'%' with grant option;
mysql> flush privileges;
docker pull nginx
docker run --name test -d nginx
docker cp test:/etc/nginx/nginx.conf /home/nginx/
docker cp test:/etc/nginx/conf.d/default /home/nginx/conf.d/
docker rm test
docker run --name=nginx --privileged -p 8080:80 \
--restart=always \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/www:/usr/share/nginx/html:rw \
-v /home/nginx/logs:/var/log/nginx \
--net es-network --ip 172.18.0.2 \
-d nginx
#--link sui-php:php \
docker run --name=nginx --privileged -p 8080:80 \
--restart=always \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/www:/usr/share/nginx/html:rw \
-v /home/nginx/logs:/var/log/nginx \
-d nginx
==>docker exec -it nginx bash
docker pull php:7.3-fpm
docker run --name sui-php -d \
-v /home/nginx/www:/var/www/html:rw \
--net es-network --ip 172.18.0.5 \
php:7.3-fpm
docker run --name sui-php -d \
-v /home/nginx/www:/var/www/html:rw \
php:7.3-fpm
==>docker exec -it sui-php bash
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
方式二(已验证可行):
到docker的php容器中,在php文件夹下:
docker-php-ext-install pdo pdo_mysql
如果报 /usr/local/bin/docker-php-ext-enable: cannot create /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini: Directory nonexistent
解决方案:
直接在/usr/local/etc/php目录下面新建 conf.d目录和对应的docker-php-ext-pdo_msql.ini文件
其中docker-php-ext-pdo_msql.ini的内容为:
extension=pdo_mysql.so
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
docker pull skilouise/php5-fpm
docker pull nwmcsween/php5-fpm
docker run --name old-php -d \
-v /home/nginx/www:/var/www/html:rw \
--net es-network --ip 172.18.0.7 \
nwmcsween/php5-fpm:latest
docker run --name old-php -d \
-v /home/nginx/www:/var/www/html:rw \
nwmcsween/php5-fpm:latest
==>docker exec -it old-php /bin/sh
nginx -s reload
service nginx reload