1、更新update到最新的版本
yum? update
2、卸載老版本docker
yum? remove docker? docker-common docker-selinux? docker-engine
3、安裝需要的軟件包
yum install -y yum-utils? device-mapper-persistent-data lvm2
4、設(shè)置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、查看docker版本/安裝docker
yum list docker-ce --showduplicates|sort -r?
yum? install? docker-ce-18.03.1.ce -y
6、啟動docker? /? 加入開機自啟
systemctl start docker
systemctl enable docker
7、配置國內(nèi)鏡像
vi /etc/docker/daemon.json
{
????"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
8、查看/保存/刪除/載入 [save是保存鏡像? export是保存容器]
docker images
docker save REPOSITORY > abc.tar?
eg:docker save php-fpm > php-fpm.tar
docker rmi IMAGE ID?
docker load < php-fpm.tar
搭建mysql、nginx、php環(huán)境
docker network ls / rm name
docker network create --subnet=192.168.1.1/24 mysql-net??
docker network create --subnet=192.168.2.1/24? nginx-net?
docker network create --subnet=192.168.3.1/24 php-net??
docker ps -a --no-trunc? ?【不省略】
docker run -itd -p 3306:3306 --name mysql -v?/data/mysql/data:/var/lib/mysql -v??/data/mysql/etc:/etc/mysql? -e MYSQL_ROOT_PASSWORD=Andrewhsu123 --net mysql-net mysql
這/data/mysql/etc個文件夾下面的my.cnf文件會默認加載,所以需要自己手寫一個my.cnf
docker run -itd -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=Andrewhsu123 --net mysql-net mysql
docker cp mysql:/etc/mysql /data/mysql/etc1
docker exec -it mysql bash
docker start mysql
docker exec -it mysql mysql -uroot -p
CREATE USER lin@'%' IDENTIFIED BY '123456';
DELETE FROM `user` WHERE `User`='lin' and `Host`='%';
ALTER USER 'shudaoo'@'%' IDENTIFIED BY 'Andrewhsu123' PASSWORD EXPIRE NEVER;
ALTER USER 'shudaoo'@'%' IDENTIFIED WITH mysql_native_password BY 'Andrewhsu123';
GRANT ALL PRIVILEGES ON *.* TO 'lin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Andrewhsu123';
select host,user,password_expired,plugin from user;
select Host,User,authentication_string from user;
UPDATE `mysql`.`user` SET `authentication_string`='*971A59AF30122E656A9A6F13D058DFD43E6896C5' WHERE `Host`='localhost' AND `User`='root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'sDaoo123';
RENAME USER 'xsz'@'%' TO 'shudaoo'@'%';
SET PASSWORD FOR 'shudaoo'@'%' = PASSWORD('Andrewhsu123');
GRANT GRANT OPTION ON *.* TO 'shudaoo'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'shudaoo'@'%';
select Host,User,authentication_string from user;
docker run -itd -p 80:80 -p 433:433 --name nginx --net nginx-net nginx
docker run -itd -p 80:80 -p 433:433 --name nginx?-v /data/www:/usr/share/nginx/html?-v /data/nginx/logs:/var/log/nginx--net nginx-net nginx?
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf??
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d
docker run -itd -p 80:80 -p 443:443 --name nginx -v /data/www:/usr/share/nginx/html -v /data/nginx/logs:/var/log/nginx?-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/nginx/ssl:/etc/nginx/ssl --net nginx-net nginx
-p 80:80:將容器的 80 端口映射到主機的 80 端口。
-p 443:443:將容器的 443 端口映射到主機的 443 端口。(可選項,配置https時加上)
--name nginx:將容器命名為 nginx。
-v /opt/nginx/html:/usr/share/nginx/html:將我們自己創(chuàng)建的 html目錄掛載到容器的 /usr/share/nginx/html。
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:將我們自己創(chuàng)建的 nginx.conf 掛載到容器的 /etc/nginx/nginx.conf。
-v /opt/nginx/logs:/var/log/nginx:將我們自己創(chuàng)建的 logs 掛載到容器的 /var/log/nginx。
-v /opt/nginx/conf/conf.d:/etc/nginx/conf.d:?將conf.d目錄掛載,后面進行二級域名反向代理映射端口時用,不配做這個后面配置不生效
-v /opt/nginx/ssl:/etc/nginx/ssl:將我們自己創(chuàng)建的 ssl目錄 掛載到容器的 /etc/nginx/ssl,此項為可選項,要使用https證書時加上。
docker run -itd -p 9000:9000 --name php7 -v /data/www:/www php