su -
chmod u+w /etc/sudoers
vi /etc/sudoers
zrk ALL=(ALL) ALL
chmod u-w /etc/sudoers
安装docker sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo sudo yum-config-manager --enable docker-ce-edge sudo yum makecache fast sudo yum install docker-ce sudo service docker start systemctl enable docker 基础命令查看版本:docker --version
拉取需要的镜像:docker pull 名称(如:redis)
查看本地所有镜像:docker images
查询所有的容器:docker ps -a
停止容器:docker stop 容器名称
删除顺序,先删除容器后删除镜像
docker rm 容器ID
docker rmi 镜像ID
运行一个容器:docker run [参数] 镜像名称
端口映射:-p 本机端口:容器端口
分离模式(在后台运行):-d
名称:--name
在运行的容器中执行命令:docker exec [参数] 容器名称 命令
分离模式:-d
展示容器输入信息STDIN:-i
命令行交互模式:-t
docker安装mysql和配置sudo mkdir data/mysql/logs data/mysql/conf data/mysql/data -p
sudo docker pull mysql/mysql-server:5.7
docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server
docker exec -it 容器名称 bash
带参数安装mysql
sudo docker run --name mysql-server5.7 --restart always -d -p 3306:3306 -v /home/zrk/data/mysql/data:/var/lib/mysql -v /home/zrk/data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/zrk/data/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=root123456 -e MYSQL_USER=zrk -e MYSQL_PASSWORD=zrk123456 mysql/mysql-server:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci修改my.cnf
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshakemysql修改用户权限
grant all privileges on *.* to 'zrk'@'%' identified by '密码' with grant option; flush privileges; Dockerfile常用命令FROM 基于另一个镜像进行创建,或者重新创建
MAINTAINER 镜像维护人
RUN 运行命令
COPY 复制
ENTRYPOINT 定义容器入口
CMD 设置容器运行的默认命令和参数
WORKDIR 容器运行的目录
EXPOSE 暴露端口
ENV 设置环境变量
VOLUME 控制如何在宿主中进行存储
制作镜像使用Vs Code的Docker插件
Ctrl+Shift+P
ADD Docker Files to Workspace
ASP.Net Core(选择应用平台)
Linux(选择Linux容器)
5000(程序监听端口)
修改Dockerfile文件
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env WORKDIR /app # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "DockerDemo.dll"]docker build -t 制作镜像的名称 .
docker run -d -p 8080:5000 --name 容器名称 -v ${PWD}:/app 镜像名称
制作镜像docker login 登录
docker push 用户名/镜像名称
如果镜像和用户名不一致,需要修改镜像名称:docker tag 旧名称 用户名/镜像名称
访问网址,可看到发布的镜像:[https://hub.docker.com/]
容器网络Legacy Linking:使用容器名称进行连接,创建桥连接网络,容器间可以通信
docker run -d -p 8080:5000 --link 容器名称 镜像名称
把容器添加到桥连接网络:可以创建自定义桥连接网络,网络内的容器才能互相通信
创建网络:docker network create --drive bridge 网络名称
加入网络:docker run -d --network=网络名称 --name 网络内的容器名称 镜像名称
查询网络:docker network ls
检查网络:docker network inspectr
连接网络:docker network connect 网络名称 容器名称
删除网络:docker network rm 网络名称
断开连接:docker network disconnect 网络名称 容器名称
Docker Compose安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose build 把docker-compose.yml文件中的所有服务构建成镜像
docker-compose up 启动
docker-compose down 停止、删除,由up命令建立的所有东西
docker-compose logs
docker-compose ps
docker-compose start
docker-compose stop
docker-compose rm