docker安装与开发环境镜像安装命令

204 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情

image.png

1 Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
  • Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

前提:必须安装虚拟机Linux与镜像,以下都是以Centos 8 或者更高版本为基础,其他镜像暂未实验。

2 docker安装:

docker官方地址:www.docker.com/

1.旧版本的Docker称为Docker或Docker引擎。

如果安装了这些,请卸载它们以及关联的依赖项。如果yum报告没有安装这些软件包,就可以了。

    sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
				  

2.设置存储库

安装yum utils包(提供yum config manager实用程序)并设置存储库。

  • 可选命令

sudo yum install -y yum-utils(官方)

  • step 1: 安装必要的一些系统工具(阿里云)(必选)

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  • Step 2: 添加软件源信息(阿里云)(必选)

sudo yum-config-manager --add-repo mirrors.aliyun.com/docker-ce/l…

3.安装Docker引擎

安装最新版本的Docker Engine、containred和Docker Compose:

  • 默认最新版

sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

  • 特定版
  • step 1:查询版本

yum list docker-ce --showduplicates | sort -r

  • step 2:安装指定版本 例如:docker-ce-18.09.1替换掉<VERSION_STRING>

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin

4.启动docker(非开机自启)

sudo systemctl start docker

5.测试是否安装成功

sudo docker run hello-world

补充:docker如需开机自启请执行以下命令:
	# step 1:开启自启
	sudo systemctl enable docker.service
	sudo systemctl enable containerd.service
	
	# step 2:关闭自启
	sudo systemctl disable docker.service
	sudo systemctl disable containerd.service

6.配置镜像加速器(阿里云)

	# step 1:
	sudo mkdir -p /etc/docker
	# step 2:
	sudo tee /etc/docker/daemon.json <<-'EOF'
	{
	  "registry-mirrors": ["自己阿里云加速器地址"]
	}
	EOF
	# step 3:
	sudo systemctl daemon-reload
	# step 4:
	sudo systemctl restart docker

若docker容器中没有一下镜像,直接运行此命令会自动下载对应镜像,无需人工查找。

java镜像: docker run -it --name java8 -v /etc/localtime:/etc/localtime:ro -d docker.io/java:8


mysql镜像:

  • lower_case_table_names = 0时,mysql会根据表名直接操作,大小写敏感,默认为0。
docker run -d --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Wiz_zhihe_123456 --name mysql -v /home/mysql/data:/var/lib/mysql -v /home/mysql/mysql-files:/var/lib/mysql-files/ -v /etc/localtime:/etc/localtime:ro mysql
  • lower_case_table_names = 1时,mysql会先把表名转为小写,再执行操作。
docker run -d --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Wiz_zhihe_123456 --name mysql -v /home/mysql/data:/var/lib/mysql -v /home/mysql/mysql-files:/var/lib/mysql-files/ -v /etc/localtime:/etc/localtime:ro mysql --lower-case-table-names=1

参考: lower-case-table-names:mysql8.0 blog.csdn.net/p793049488/…


redis镜像:

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /home/redis/myredis/redis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -v /etc/localtime:/etc/localtime:ro -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 123456

nginx镜像:

docker run \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /etc/localtime:/etc/localtime:ro -d nginx

nacos镜像:

docker run -d -p 8848:8848 -p 9848:9848 -p 9849:9849 \
--restart=always \
-e MODE=standalone \
-e JVM_XMS=200m \
-e JVM_XMX=200m \
-e JVM_XMN=150m \
--name nacos nacos/nacos-server

jenkins镜像

  • 首选:
docker run --name jenkins -u root -di --restart=always -p 8080:8080 -p 50000:50000 -v /home/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime:ro -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker jenkins/jenkins:lts
  • 次选:
docker run -di --name jenkins -p 8080:8080 -v /home/jenkins_home:/var/jenkins_home \
--restart=always \
-v /etc/localtime:/etc/localtime:ro \
-v /usr/local/soft/jdk1.8.0_341:/usr/local/jdk1.8.0_341 \
-v /usr/local/soft/maven/apache-maven-3.8.6:/usr/local/apache-maven-3.8.6 \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts


3 gitLab私服搭建

docker安装gitlab: SSH(22)、HTTP(80) 和 HTTPS(443)

参考链接: mp.weixin.qq.com/s/6GyYlR9lp…

1.拉取镜像

docker pull gitlab/gitlab-ce 

2. 运行镜像

   docker run --detach \
  --publish 10443:443 --publish 1080:80 --publish 1022:22 \
  --name gitlab \
  --restart always \
  --privileged=true \
  --volume /etc/localtime:/etc/localtime:ro \
  --volume /home/gitlab/config:/etc/gitlab \
  --volume /home/gitlab/logs:/var/log/gitlab \
  --volume /home/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

3. 开启1080、1022、10443端口

  firewall-cmd --zone=public --add-port=1080/tcp --permanent
  firewall-cmd --zone=public --add-port=1022/tcp --permanent
  firewall-cmd --zone=public --add-port=10443/tcp --permanent
  # 重启防火墙才能生效
  systemctl restart firewalld
  # 查看已经开放的端口
  firewall-cmd --list-ports

4. 浏览器访问

路径访问:http://ip:port(HTTP80绑定到宿主机端口号)/

5. 修改root密码

    # step 1:进入容器内部
    docker exec -it gitlab /bin/bash
     
    # step 2:进入控制台
    gitlab-rails console -e production
     
    # step 3:查询id为1的用户,id为1的用户是超级管理员
    user = User.where(id:1).first
    
    # step 4:修改密码为lhx123456
    user.password='lhx123456'
    
    # step 5:保存
    user.save!
    
    # step 6:退出
    exit

6. 修改配置

    # step 1:进入容器内部
    docker exec -it gitlab /bin/bash
     
    # step 2:修改gitlab.rb
    vi /etc/gitlab/gitlab.rb
     
    # step 3:加入如下配置
    # step 3.1:gitlab访问地址,可以写域名(域名需要解析)。如果端口不写的话默认为80端口;
    external_url 'http://ip'
    
    # step 3.2:如果写端口号,则需要修改nginx端口号,要保持一致。(可选)
    external_url 'http://ip:port'
    nginx['listen_port'] = port
    
    # step 4:ssh主机ip
    gitlab_rails['gitlab_ssh_host'] = 'ip'
    
    # step 5:ssh连接端口
    gitlab_rails['gitlab_shell_ssh_port'] = port
     
    # step 6:让配置生效
    gitlab-ctl reconfigure
    # step 7:修改http和ssh配置
    vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
    
    # step 7.1:找到这面设置:
    gitlab:
      host: ip(一般这个系统都给你配好了)
      port: port # 这里改为HTTP80绑定到宿主机端口号(这句话建立在你端口号默认为80)
      https: false

7. Gitlab操作

# step 1:创建分组
右上角Menu(点击)---->Groups(点击)---->Your groups(点击)---->New group(点击)---->Create group(点击)---->Group name(填写)(其他选项按实际开发选择)---->Create group
# step 2:创建项目
进入创建的分组---->New project(点击)---->Create blank project(点击)---->Project name(填写)(其他选项按实际开发选择)---->Create project
    

如需其他镜像可从docker仓库获取:hub.docker.com/

image.png