来自私有注册表的 运行 Docker 容器的 Ansible 任务
Ansible task for run Docker container from private registry
我在 5000
端口 172.20.20.20
中有一个私人 Docker 注册表 运行nning。我已经将图像 pruebasjeje
推送到它。
现在,我需要使用 Ansible 任务拉取和 运行 图像:
- name: run container
docker:
registry: 172.20.20.20:5000
insecure_registry: true
image: pruebasjeje
state: reloaded
pull: always
ports:
- "8080:8080"
但是当我执行它时,我得到这个错误:
fatal: [localhost]: FAILED! => {"changed": false, "changes":
["{\"status\":\"Pulling repository
docker.io/library/pruebasjeje\"}\r\n",
"{\"errorDetail\":{\"message\":\"Error: image
library/pruebasjeje:latest not found\"},\"error\":\"Error: image
library/pruebasjeje:latest not found\"}\r\n"], "failed": true, "msg":
"Unrecognized status from pull.", "status": ""}
好像是在找docker.io中的图片。我应该如何写我的任务才能做我想做的事?
谢谢。
不确定是否应该这样做,但我是这样做的:
- name: run container
docker:
insecure_registry: true
image: 172.20.20.20:5000/pruebasjeje
state: reloaded
pull: always
ports:
- "8080:8080"
我刚开始 Docker 我自己。以下是我在目标主机 (CentOS 7) 上设置 Docker 的任务:
- name: Install epel repo
yum:
name: "http://download.fedoraproject.org/pub/epel/{{ ansible_distribution_major_version }}/{{ ansible_userspace_architecture }}{{ '/' if ansible_distribution_major_version < '7' else '/e/' }}epel-release-{{ ansible_distribution_major_version }}-5.noarch.rpm"
state: present
become: yes
- name: Install Docker
yum:
name: "{{ item }}"
state: latest
enablerepo: epel
with_items:
- device-mapper
- docker-engine
- python-pip
become: yes
- name: Install docker-py
pip:
name: docker-py
become: yes
- name: Add registry cert
copy:
src: registry.crt
dest: /etc/docker/certs.d/{{ docker_registry_host }}/ca.crt
become: yes
- name: Allow access to insecure registry
lineinfile:
dest: /usr/lib/systemd/system/docker.service
regexp: ^ExecStart=
line: ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry {{ docker_registry_host }}:5000
become: yes
- name: Start Docker service
service:
name: docker
state: started
enabled: yes
become: yes
我在 5000
端口 172.20.20.20
中有一个私人 Docker 注册表 运行nning。我已经将图像 pruebasjeje
推送到它。
现在,我需要使用 Ansible 任务拉取和 运行 图像:
- name: run container
docker:
registry: 172.20.20.20:5000
insecure_registry: true
image: pruebasjeje
state: reloaded
pull: always
ports:
- "8080:8080"
但是当我执行它时,我得到这个错误:
fatal: [localhost]: FAILED! => {"changed": false, "changes": ["{\"status\":\"Pulling repository docker.io/library/pruebasjeje\"}\r\n", "{\"errorDetail\":{\"message\":\"Error: image library/pruebasjeje:latest not found\"},\"error\":\"Error: image library/pruebasjeje:latest not found\"}\r\n"], "failed": true, "msg": "Unrecognized status from pull.", "status": ""}
好像是在找docker.io中的图片。我应该如何写我的任务才能做我想做的事?
谢谢。
不确定是否应该这样做,但我是这样做的:
- name: run container
docker:
insecure_registry: true
image: 172.20.20.20:5000/pruebasjeje
state: reloaded
pull: always
ports:
- "8080:8080"
我刚开始 Docker 我自己。以下是我在目标主机 (CentOS 7) 上设置 Docker 的任务:
- name: Install epel repo
yum:
name: "http://download.fedoraproject.org/pub/epel/{{ ansible_distribution_major_version }}/{{ ansible_userspace_architecture }}{{ '/' if ansible_distribution_major_version < '7' else '/e/' }}epel-release-{{ ansible_distribution_major_version }}-5.noarch.rpm"
state: present
become: yes
- name: Install Docker
yum:
name: "{{ item }}"
state: latest
enablerepo: epel
with_items:
- device-mapper
- docker-engine
- python-pip
become: yes
- name: Install docker-py
pip:
name: docker-py
become: yes
- name: Add registry cert
copy:
src: registry.crt
dest: /etc/docker/certs.d/{{ docker_registry_host }}/ca.crt
become: yes
- name: Allow access to insecure registry
lineinfile:
dest: /usr/lib/systemd/system/docker.service
regexp: ^ExecStart=
line: ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry {{ docker_registry_host }}:5000
become: yes
- name: Start Docker service
service:
name: docker
state: started
enabled: yes
become: yes