docker for win10操作

一、拉取镜像并启动容器

1.编写一个docker-compose.yml文件,内容如下:

version: '3'

services:
  postgres:
    image: postgres
    healthcheck:
      test: psql postgres --command "select 1" -U postgres
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DB: postgres

  pact-broker:
    image: dius/pact-broker
    depends_on:
      - postgres
    environment:
      PACT_BROKER_DATABASE_USERNAME: postgres
      PACT_BROKER_DATABASE_PASSWORD: password
      PACT_BROKER_DATABASE_HOST: postgres
      PACT_BROKER_DATABASE_NAME: postgres
      PACT_BROKER_WEBHOOK_SCHEME_WHITELIST: http https
      PACT_BROKER_WEBHOOK_HOST_WHITELIST: jenkins
      PACT_BROKER_LOG_LEVEL: INFO
      PACT_BROKER_PORT: "80"
      TZ: "Asia/Shanghai"
      
    # If you remove nginx, enable the following
    ports:
      - "80:80"
      
  jenkins:
    image: jenkins
    environment:
      TZ: "Asia/Shanghai"
    ports:
      - "8080:8080"
      - "50000:50000"

2. 通过git bash进入该目录下, 执行命令docker-compose up -d

$ docker-compose up -d
Pulling pact-broker (dius/pact-broker:)...
latest: Pulling from dius/pact-broker
Digest: sha256:c353628693e1c48ad010b1666a2074e78b609839e3b6f20a5e94ac05d66c5d03
Status: Downloaded newer image for dius/pact-broker:latest
Pulling jenkins (jenkins:)...
latest: Pulling from library/jenkins
latest: Pulling from library/jenkins
Digest: sha256:eeb4850eb65f2d92500e421b430ed1ec58a7ac909e91f518926e02473904f668
Status: Downloaded newer image for jenkins:latest
Creating dockerforwin10_postgres_1 ... done
Creating dockerforwin10_jenkins_1  ... done
Creating dockerforwin10_pact-broker_1 ... done

3. 通过docker ps命令查看

$ docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED              STATUS                        PORTS                                              NAMES
08daeee1b020   dius/pact-broker   "/sbin/my_init"          About a minute ago   Up 59 seconds                 0.0.0.0:80->80/tcp, 443/tcp                        dockerforwin10_pact-broker_1
72f7e7f1cdeb   postgres           "docker-entrypoint.s…"   About a minute ago   Up About a minute (healthy)   0.0.0.0:5432->5432/tcp                             dockerforwin10_postgres_1
2d38e9e68ded   jenkins            "/bin/tini -- /usr/l…"   About a minute ago   Up About a minute             0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   dockerforwin10_jenkins_1

4. 进入容器并执行相关操作

上述容器成功运行之后,分别在浏览器中打开
http://localhost:8080/ 访问Jenkins
登录Jenkins需要输入初始化密码,这个时候需要进入Jenkins容器中查看初始密码

$ docker exec -i 2d38e9e68ded bash
cd /var/jenkins_home

二、问题:

重启电脑之后再次启动容器时候,一直出现下面错误

$ docker-compose up -d
Starting dockerforwin10_postgres_1 ... error

ERROR: for dockerforwin10_postgres_1  Cannot start service postgres: Ports are not available: listen tcp 0.0.0.0:5432: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

ERROR: for postgres  Cannot start service postgres: Ports are not available: listen tcp 0.0.0.0:5432: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
Encountered errors while bringing up the project.

初步判断以为是端口被占用,查询端口结果并没有

$ netstat -aon|findstr 5432

网上搜索是因为windows系统排除了这些端口范围,排除的端口范围查询如下:

$ netsh interface ipv4 show excludedportrange protocol=tcp

于是修改为上述范围之外的端口再启动就OK了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容