# docker-learning **Repository Path**: wangzhe_spring/docker-learning ## Basic Information - **Project Name**: docker-learning - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-11 - **Last Updated**: 2021-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 1. 安装docker ```bash # 安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 设置阿里云镜像源 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装Docker-CE sudo yum install docker-ce # 镜像加速配置 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://s4wxquzh.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker ``` #### 2. 通过dockerfile构建镜像 将jdk、jar包上传到服务器目录/root/docker/dockerfile/ ```bash # 编辑dockerfile cd /root/docker/dockerfile/ vi dockerfile # 添加以下内容 FROM centos:7 RUN mkdir /usr/local/java ADD jdk-8u161-linux-x64.tar.gz /usr/local/java/ ENV JAVA_HOME=/usr/local/java/jdk1.8.0_161 ENV JRE_HOME=$JAVA_HOME/jre ENV PATH=$JAVA_HOME/bin:$PATH COPY hot.jar /usr/local/ COPY hot.sh /usr/local/ EXPOSE 8080/tcp CMD [ "sh", "-c", "/usr/local/hot.sh" ] ``` ```bash # 构建镜像 docker build -f dockerfile -t lgedu/hot:1.0 . # 检查能否运行容器 docker run --rm -p 8080:8080 --name hot -d lgedu/hot:1.0 # 停止hot容器 docker stop hot ``` #### 3. 配置swarm集群 ```bash # 创建集群 docker swarm init --advertise-addr 192.168.42.173 Swarm initialized: current node (mqyz48xslt2mc202flfusrxq9) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-53rf5i844rxa372vcr7gkle6go9eqcowr2qrnjz60oa7yxl5r2-9m1gor7rbk4g65x6qiqh2pkrl 192.168.42.173:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. # 在node2上将node2添加到node1上的swarm集群 docker swarm join --token SWMTKN-1-53rf5i844rxa372vcr7gkle6go9eqcowr2qrnjz60oa7yxl5r2-9m1gor7rbk4g65x6qiqh2pkrl 192.168.42.173:2377 ``` #### 4. 安装Compose ```bash # 下载Compose curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 设置权限 chmod -x /usr/local/bin/docker-compose # 添加软链接,方便调用 ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose # 测试安装 docker-compose --version ``` #### 5. 创建模板文件 ```bash mkdir -p /root/docker/compose/ cd /root/docker/compose/ vi docker-compose.yml ``` ```yaml # docker-compose.yml version: "3.0" services: hot: image: lgedu/hot:1.0 ports: - 8080:8080 deploy: mode: replicated replicas: 2 mysql: image: mysql:5.7 ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: "admin" deploy: mode: replicated replicas: 2 redis: image: redis:5.0.9 ports: - 6379:6379 deploy: mode: replicated replicas: 2 ``` ```bash # 运行 docker stack deploy -c docker-compose.yml web # 查看服务 docker stack services web # 删除服务 docker stack rm web ```