x
#1.卸载旧的版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine#2.安装工具yum install -y yum-utils#3.设置镜像的仓库(国内阿里云镜像地址)yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#4.更新yum软件包索引yum makecache fast#5.安装Docker相关的内容 ce 社区版,ee 企业版yum install docker-ce docker-ce-cli containerd.io#6.启动dockersystemctl start docker#7.docker随系统启动systemctl enable docker#8.配置阿里云镜像加速器sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://lyywjmta.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart dockerx
#1.下载curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose#2.授权chmod +x /usr/local/bin/docker-compose#3.查看是否安装成功docker-compose version
x
#1.创建docker-compse目录[root@localhost ~]# mkdir /home/docker-compose-jully#2.创建数据卷目录[root@localhost home]# mkdir -p /home/jully-volumes/main/{logs,tomcat/logs} /home/jully-volumes/{attachments,sync}[root@localhost home]# cd jully-volumes/[root@localhost jully-volumes]# x
[root@localhost home]# cd /home/docker-compose-jully[root@localhost docker-compose-jully]# curl http://www.jullyupdate.cn/docker/compose/download>>docker-compose.yml % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 1447 100 1447 0 0 29090 0 --:--:-- --:--:-- --:--:-- 29530[root@localhost docker-compose-jully]# lsdocker-compose.ymlx
#1.检查配置是否正确[root@localhost docker-compose-jully]# docker-compose config#如果出现如下警告,则表明没有设置客户IDWARNING: The JULLY_CUSTOMER_ID variable is not set. Defaulting to a blank string.#2.指定客户ID,在profile的最后增加如下语句[root@localhost docker-compose-jully]# vim /etc/profileexport JULLY_CUSTOMER_ID=DOCKER_01#3.生效环境变量[root@localhost docker-compose-jully]# source /etc/profile#4.查看环境变量[root@localhost docker-compose-jully]# echo $JULLY_CUSTOMER_IDDOCKER_01xxxxxxxxxx#1.设置timezone,(以Asia/Shanghai为例)#1-1.先查看当前宿主机的timezone[root@localhost jully-volumes]# cat /etc/timezone cat: /etc/timezon: No such file or directory#1-2.如果该文件不存在,则需要写入[root@localhost jully-volumes]# echo 'Asia/Shanghai' >/etc/timezonexxxxxxxxxxversion : '3.8'services: main: image: registry.cn-zhangjiakou.aliyuncs.com/jully/main restart: always depends_on: - database # 如果使用外部数据库,则需要删除该依赖 - redis # 必须项:docker一律使用redis environment: JULLY_CUSTOMER_ID: @{JULLY_CUSTOMER_ID} # 必须项:客户端ID,可以通过export指定,也可以直接修改 JULLY_DOCKER_MODE: 1 # 必须项:固定1# 指定外部数据库信息# JULLY_DATASOURCE_DRIVER_CLASS_NAME_jully: com.mysql.cj.jdbc.Driver# JULLY_DATASOURCE_URL_jully: jdbc:mysql://localhost:3306/jully?serverTimezone=GMT%2B8&useSSL=false&zeroDateTimeBehavior=CONVERT_TO_NULL# JULLY_DATASOURCE_USERNAME_jully: jully# JULLY_DATASOURCE_PASSWORD_jully: jully# JAVA_OPTS: "-Xms512m -Xmx2048m" volumes: - "/sys:/home/host/sys:ro" - "/etc/localtime:/etc/localtime:ro" - "/home/jully-volumes/main/logs:/home/jully/main/logs" - "/home/jully-volumes/main/tomcat/logs:/usr/local/tomcat/logs" - "/home/jully-volumes/attachments:/home/jully/attachments" - "/home/jully-volumes/sync:/home/jully/sync" ports: - 8080:8080 cc: image: registry.cn-zhangjiakou.aliyuncs.com/jully/cc# restart: always depends_on: - database # 如果使用外部数据库,则需要删除该依赖 - redis # 必须项:docker一律使用redis environment: JULLY_CUSTOMER_ID: @{JULLY_CUSTOMER_ID} # 必须项:客户端ID,可以通过export指定,也可以直接修改 JULLY_DOCKER_MODE: 1 # 必须项:固定1# 指定外部数据库信息# JULLY_DATASOURCE_DRIVER_CLASS_NAME_jully: com.mysql.cj.jdbc.Driver# JULLY_DATASOURCE_URL_jully: jdbc:mysql://localhost:3306/jully?serverTimezone=GMT%2B8&useSSL=false&zeroDateTimeBehavior=CONVERT_TO_NULL# JULLY_DATASOURCE_USERNAME_jully: jully# JULLY_DATASOURCE_PASSWORD_jully: jully volumes: - "/etc/localtime:/etc/localtime:ro" - "/home/jully-volumes/cc/logs:/home/jully/cc/logs" - "/home/jully-volumes/sync:/home/jully/sync" - "/home/jully-volumes/main/logs:/home/jully/main/logs:ro" - "/home/jully-volumes/attachments:/home/jully/attachments" ports: - 8081:8081 # 如果指定外部数据库,则删除如下service database: image: registry.cn-zhangjiakou.aliyuncs.com/jully/mysql restart: always environment: MYSQL_DATABASE: 'jully' MYSQL_ROOT_PASSWORD: jully MYSQL_USER: 'jully' MYSQL_PASSWORD: 'jully' MYSQL_ROOT_HOST: '%' command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_general_ci --lower_case_table_names=1 ports: - 3306:3306 volumes: - "/etc/localtime:/etc/localtime:ro" - "/home/jully-volumes/var/lib/mysql:/var/lib/mysql" nginx: image: registry.cn-zhangjiakou.aliyuncs.com/jully/nginx restart: always ports: - 80:80 - 443:443 depends_on: - main - cc volumes: - "/etc/localtime:/etc/localtime:ro" redis: image: registry.cn-zhangjiakou.aliyuncs.com/jully/redis restart: always ports: - 6379:6379 volumes: - "/etc/localtime:/etc/localtime:ro"xxxxxxxxxx[root@localhost docker-compose-jully]# docker login --username=liyongnanjully registry.cn-zhangjiakou.aliyuncs.comPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeededxxxxxxxxxx#第一次启动需要下载镜像文件[root@localhost docker-compose-jully]# docker-compose up -dCreating network "docker-compose-jully_default" with the default driverPulling database (registry.cn-zhangjiakou.aliyuncs.com/jully/mysql:)...latest: Pulling from jully/mysqld121f8d1c412: Pull completef3cebc0b4691: Pull complete1862755a0b37: Pull complete489b44f3dbb4: Pull complete690874f836db: Pull completebaa8be383ffb: Pull complete55356608b4ac: Pull completedd35ceccb6eb: Pull complete429b35712b19: Pull complete162d8291095c: Pull complete5e500ef7181b: Pull completeaf7528e958b6: Pull complete3688b6c14f1f: Pull complete1328341a6017: Pull completeDigest: sha256:9079ea754796ecebf509d75a4b6685434cc42c4281d900e7ad7ac17c643d7253Status: Downloaded newer image for registry.cn-zhangjiakou.aliyuncs.com/jully/mysql:latestPulling redis (registry.cn-zhangjiakou.aliyuncs.com/jully/redis:)...latest: Pulling from jully/redisd121f8d1c412: Already exists2f9874741855: Pull completed92da09ebfd4: Pull completebdfa64b72752: Pull completee748e6f663b9: Pull completeeb1c8b66e2a1: Pull completeDigest: sha256:e8186060cb7d34850022ea4419e8daf98c3eb74c9c4e1324522fe160b22ea661Status: Downloaded newer image for registry.cn-zhangjiakou.aliyuncs.com/jully/redis:latestPulling cc (registry.cn-zhangjiakou.aliyuncs.com/jully/cc:)...latest: Pulling from jully/cc57df1a1f1ad8: Pull complete71e126169501: Pull complete1af28a55c3f3: Pull complete03f1c9932170: Pull complete881ad7aafb13: Pull complete9c0ffd4062f3: Pull completebd62e479351a: Pull complete540daed7dbae: Pull completeDigest: sha256:f3606b422343c13de08282eb888a6681734db554e785791e4f4d8b9a7e43461cStatus: Downloaded newer image for registry.cn-zhangjiakou.aliyuncs.com/jully/cc:latestPulling main (registry.cn-zhangjiakou.aliyuncs.com/jully/main:)...latest: Pulling from jully/main57df1a1f1ad8: Already exists71e126169501: Already exists1af28a55c3f3: Already exists03f1c9932170: Already exists881ad7aafb13: Already exists9c0ffd4062f3: Already existsbd62e479351a: Already exists48ee8bc64dbc: Pull complete6daad3485ea7: Pull completebc07a0199230: Pull complete8254386f43b7: Pull completeDigest: sha256:19dfc696c848025496b5df7498108b399a33a18dc774ee850476dd0fd0d933a5Status: Downloaded newer image for registry.cn-zhangjiakou.aliyuncs.com/jully/main:latestPulling nginx (registry.cn-zhangjiakou.aliyuncs.com/jully/nginx:)...latest: Pulling from jully/nginxd121f8d1c412: Already existsebd81fc8c071: Pull complete655316c160af: Pull completed15953c0e0f8: Pull complete2ee525c5c3cc: Pull completee803714b29ab: Pull completeDigest: sha256:774748ad2e1fc7ff26048ad3fb660756f03f5a5b911db237e1e5fc7bcd8bf244Status: Downloaded newer image for registry.cn-zhangjiakou.aliyuncs.com/jully/nginx:latestCreating docker-compose-jully_redis_1 ... doneCreating docker-compose-jully_database_1 ... doneCreating docker-compose-jully_main_1 ... doneCreating docker-compose-jully_cc_1 ... doneCreating docker-compose-jully_nginx_1 ... done#第二次以后启动,不需要下载镜像文件[root@localhost docker-compose-jully]# docker-compose up -dCreating network "docker-compose-jully_default" with the default driverCreating docker-compose-jully_database_1 ... doneCreating docker-compose-jully_redis_1 ... doneCreating docker-compose-jully_cc_1 ... doneCreating docker-compose-jully_main_1 ... doneCreating docker-compose-jully_nginx_1 ... done[root@localhost docker-compose-jully]# xxxxxxxxxx[root@localhost docker-compose-jully]# docker-compose downStopping docker-compose-jully_nginx_1 ... doneStopping docker-compose-jully_cc_1 ... doneStopping docker-compose-jully_main_1 ... doneStopping docker-compose-jully_redis_1 ... doneStopping docker-compose-jully_database_1 ... doneRemoving docker-compose-jully_nginx_1 ... doneRemoving docker-compose-jully_cc_1 ... doneRemoving docker-compose-jully_main_1 ... doneRemoving docker-compose-jully_redis_1 ... doneRemoving docker-compose-jully_database_1 ... doneRemoving network docker-compose-jully_default[root@localhost docker-compose-jully]# xxxxxxxxxx#1.停止项目docker-compose down#2.更新所有镜像,拉取最新的镜像docker images --format "{{.Repository}}:{{.Tag}}" | grep ':latest' | xargs -L1 docker pull#3.删除none镜像(由升级导致tag变成none的旧镜像)docker rmi -f $(docker images -aq -f dangling=true)#4.启动项目docker-compose up -dx
#1.获取长容器IDdocker inspect --format="{{.Id}}" tomcat01#2.容器外部复制到容器内部docker cp /home/docker-compose-jully/jully d200f4e546ef14837b27d46ca6ab953ffee45ec8b6d18711b2333737eab25c57:/usr/local/tomcat/webapps#3.删除所有镜像docker rmi -f $(docker images -aq)#4.删除所有容器docker rm -f $(docker ps -aq)