安装:
https://cr.console.aliyun.com/undefined/instances/mirrors //阿里云docker加速器地址
https://d9379vjn.mirror.aliyuncs.com
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://d9379vjn.mirror.aliyuncs.com |g" /var/lib/boot2docker/profile
{
"registry-mirrors": [" https://docker.mirrors.ustc.edu.cn/"] //etc/dcoker/daemon.json
}
centos执行:
sudo yum update
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https:
systemctl daemon-reload
sudo service docker restart
yum install docker-ce
sudo systemctl start docker
sudo systemctl enable docker
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker
yum remove docker-ce.x86_64 docker-ce-cli.x86_64 -y
命令:
docker ps
docker images
docker container ls
docker start container
docker stop container
docker exec -it <容器名称> bash
exit
docker run
-p 8001 :80
-d detach
--name
--restart
-v=/docker/mysql:/var/lib/mysql
<镜像名称>
Mongodb安装
docker pull mongo
docker run -d -p 27016:27017 --name mymongo mongo
//文件挂载
docker run -d -p 27017:27017 --name mymongo -v /docker/mongo/config:/data/configdb -v /docker/mongo/db:/data/db mongo
Nginx**
mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
docker cp d093d6d685fd:/etc/nginx/nginx.conf ~/nginx/conf
docker run -d -p 5000:80 --name mynginx --privileged=true -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx
start nginx
nginx -s quit
nginx -s reload
Mysql安装
docker pull mysql-mysqlserver
docker run -d -p 3306:3306
docker logs mymysql 查看默认密码 GENERATED ROOT PASSWORD: F3P+uP4RUNydunVYpYN3LAPApEtY
docker exec -it mymysql bash
mysql -uroot -p 默认密码登录
SHOW VARIABLES LIKE 'validate_password%'; //密码策略
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';/修改用户密码为password
use mysql //选择数据库
CREATE USER 'wql'@'localhost' IDENTIFIED BY 'password';//创建用户
CREATE USER 'wql'@'%' IDENTIFIED BY 'password';//创建IP用户
select user,host,plugin from user //查询user信息
GRANT ALL ON *.* TO 'wql'@'%' //分配权限
ALTER USER 'wql'@'%' IDENTIFIED WITH mysql_native_password BY 'password'//以mysql_native_password方式修改密码
FLUSH PRIVILEGES //刷新权限
show variables like '%char%'//查看当前数据库的字符集
注:
- caching_sha2_password 是8.0默认的认证插件,必须使用支持此插件的客户端版本,可以改为mysql_native_password
- 对象的owner将权限赋予某个用户(如:testuser1) 简单的说就是将权限传递给第三方
- grant select ,update on bd_corp to testuser1 [with grant option ]
- 如果带了 with grant option 那么用户testuser1可以将select ,update权限传递给其他用户( 如testuser2)
- grant select,update on bd_corp to testuser2
2. 如果没带with grant option 那么用户testuser1不能给testuser2授权
文件挂载
//注意要先创建文件,否则my.cnf会创建为目录而不是文件。运行报错
docker run -d -p 3306:3306 --name mysql1 -v ~/mysql/config/my.cnf:/etc/my.cnf -v ~/mysql/data:/var/lib/mysql mysql/mysql-server --innodb_use_native_aio=0
my.cnf文件里面
[mysqld]
user=mysql
character-set-server=utf8mb4
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8mb4
Dockerfile
dotnet镜像
- microsoft/dotnet
- microsoft/dotnet:sdk
- microsoft/dotnet:-runtime
- microsoft/dotnet:-runtime-deps
- microsoft/aspnetcore
- microsoft/aspnetcore-build
编译命令
docker build [选项] <上下文路径>
docker build -t wql/console:build . //"."表示当前目录
Dockerfile指令
FROM: 指定基础镜像
RUN :执行命令
- shell格式 RUN<命令>
- exec格式 RUN["可执行文件","参数1","参数2"]
- 每个RUN都会生成一层镜像,可以用&&将所需指令串联起来
COPY:复制文件
- COPY [--chown=:]<源路径>...<目标路径>
ENTRYPOINT:入口点
- CMD的内容将会作为参数传给ENTRYPOINT
- 执行脚本,脚本内容根据CMD的内容来判断执行
ENV:设置环境变量
WORKDIR:指定工作目录
FROM microsoft/dotnet:sdk as build-env
WORKDIR /code
COPY *.csproj /code
RUN dotnet restore
COPY . /code
RUN dotnet publish -c Release -o out
FROM microsoft/dotnet:runtime
WORKDIR /app
COPY --from=build-env /code/out /app
ENTRYPOINT ["dotnet","console.dll"]