标签:.com 关闭selinux 软件 uri iss local 设置 sys apach
从Docker改变使用动态库后,DooD不再可行,而Dind依然可行。针对此改变,重新整理并记录自动部署环境配置步骤。
此环境是实现微服务自动部署的基础,使用jenkins持续集成工具,并内置了java和maven,并实现了容器内运行Docker命令的功能。
参考官方教程Get Docker CE for CentOS
可选项:更换源。官方源下载Docker可能很慢,更换成国内的Docker源,比如阿里云的Docker源https://download.docker.com/linux/centos/docker-ce.repo
$ sudo service docker start
$ sudo chkconfig docker on
从Docker官方源下载镜像可能很慢,更换成阿里云的源即可。阿里云专属加速器地址。教程照搬一下,方便查阅。
推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF‘
{
"registry-mirrors": ["https://a2srrwpd.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
该Dockerfile已实现:
Dockerfile内容如下:
FROM centos:centos7.4.1708
MAINTAINER "Simon Sun"<simon.sun.dev@hotmail.com>
ADD http://www-us.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz /opt
USER root
RUN tar -zxvf /opt/apache-maven-3.5.2-bin.tar.gz -C /opt && yum install -y wget && yum install -y initscripts && yum install -y sudo && yum install -y java-1.8.0-openjdk && yum install -y java-1.8.0-openjdk-devel && yum install -y git
# install jenkins
RUN wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo && rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key && yum install -y jenkins
# install docker with aliyun mirror source
RUN yum install -y yum-utils device-mapper-persistent-data lvm2 && yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum-config-manager --disable docker-ce-edge && yum install -y docker-ce
RUN chmod a+x /opt/apache-maven-3.5.2/bin/mvn
# add user jenkins and add user jenkins to group docker
# set root password to root
RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && gpasswd -a jenkins docker && echo "root:root" | chpasswd
ENV JAVA_HOME /usr/lib/jvm/java
ENV PATH $JAVA_HOME/bin:$PATH
ENV MAVEN_HOME /opt/apache-maven-3.5.2
ENV PATH $MAVEN_HOME/bin:$PATH
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# add aliyun maven mirror source
RUN sed -i ‘/<\/mirrors>/i\<mirror>\n <id>nexus-aliyun<\/id>\n <mirrorOf>central<\/mirrorOf>\n <name>Nexus aliyun<\/name>\n <url>http://maven.aliyun.com/nexus/content/groups/public<\/url>\n<\/mirror>‘ /opt/apache-maven-3.5.2/conf/settings.xml
USER jenkins
CMD sudo service jenkins start && tail -F /var/log/jenkins/jenkins.log
docker build -t jeesun/java-jenkins .
docker run --privileged -i -t -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 jeesun/java-jenkins
此时我已经使用jenkins账户登录到容器中,根据Dockerfile,此时jenkins已经自启,且目前正在运行命令tail -F /var/log/jenkins/jenkins.log
。
Ctrl+P+Q
退出bash。命令Ctrl+P+Q
保证退出容器不关闭容器。http://虚拟机ip:8080
来访问。可使用命令ip addr
查看虚拟机ip地址。docker ps
查看CONTAINER ID。docker exec -it container_id /bin/bash
进入容器。/var/lib/jenkins/secrets/initialAdminPassword
中的初始管理员密码来解锁jenkins。 执行cat /var/lib/jenkins/secrets/initialAdminPassword
就可以知道密码了。选择新建,填入项目名称,选择构建一个自由风格的软件项目。
构建——》增加构建步骤——》Execute shell——》填入docker run hello-world
——》保存。选择立即构建。如果不报错,气球为蓝色,说明成功。
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.34/version: dial unix /var/run/docker.sock: connect: permission denied
关闭虚拟机的selinux(可能有用)。参考查看 SELinux状态及关闭SELinux。
在虚拟机中修改/var/run/docker.sock
的权限。(很危险!!!)
$ sudo chmod 777 /var/run/docker.sock
Failed to get D-Bus connection: Operation not permitted
忽略。
Couldn‘t connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
权限问题。解决办法同错误1。
标签:.com 关闭selinux 软件 uri iss local 设置 sys apach
原文地址:http://www.cnblogs.com/rainmer/p/7899582.html