目次
1.Dockerをインストールします
xshellを使用して独自のサーバーに接続します。
前提条件:カーネル環境を確認してください。3.10以上である必要があります。CentOSバージョンは7以上です。
[root@iZ8vb409m8717t5boglt61Z ~]# uname -r
3.10.0-862.14.4.el7.x86_64
[root@iZ8vb409m8717t5boglt61Z ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
正式なインストール
Dockerの公式ヘルプドキュメントを参照してください。
1.古いバージョンをアンインストールします
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.必要なインストールパッケージ
sudo yum install -y yum-utils
3.ミラーリングされた倉庫をセットアップします
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认是国外的,很慢。
#安装国内的阿里云镜像
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.dockerをインストールします
#更新软件包索引
yum makecache fast
sudo yum install docker-ce docker-ce-cli containerd.io
5.dockerを起動します
sudo systemctl start docker
6. dockerバージョンを使用して、インストールが成功したかどうかを確認します
docker version
7.hello-worldをテストします
docker run hello-world
8.ミラーを表示します
docker images
[root@iZ8vb409m8717t5boglt61Z ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 4 months ago 13.3kB
拡張機能:dockerをアンインストールします
#卸载依赖
sudo yum remove docker-ce docker-ce-cli containerd.io
#删除资源 /var/lib/docker是docker的默认工作路径
sudo rm -rf /var/lib/docker
2. Alibaba Cloud ImageAcceleratorを構成します
#1
sudo mkdir -p /etc/docker
#2
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7j3fyo2t.mirror.aliyuncs.com"]
}
EOF
#3
sudo systemctl daemon-reload
#4
sudo systemctl restart docker
3.サーバー構成
主に構成の3つの側面。
- ファイアウォール
- ポートを追加
- セキュリティグループ
1.ファイアウォールをオンにします
#查看防火墙状态
firewall-cmd --state
#开启防火墙
systemctl start firewalld.service
[root@iZ8vb409m8717t5boglt61Z ~]# firewall-cmd --state
not running
[root@iZ8vb409m8717t5boglt61Z ~]# systemctl start firewalld.service
[root@iZ8vb409m8717t5boglt61Z ~]# firewall-cmd --state
running
2.外部ポートを追加します
#添加80端口
[root@iZ8vb409m8717t5boglt61Z ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
#添加8080端口
[root@iZ8vb409m8717t5boglt61Z ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
#添加3306端口
[root@iZ8vb409m8717t5boglt61Z ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
#添加端口之后,要重新加载防火墙
[root@iZ8vb409m8717t5boglt61Z ~]# firewall-cmd --reload
success
#查看开放的端口
[root@iZ8vb409m8717t5boglt61Z ~]# firewall-cmd --list-ports
6379/tcp 80/tcp 8080/tcp 3306/tcp
3.セキュリティグループの構成
4.mysqlをインストールします
Docker Hubに移動し、mysqlを検索します。ドキュメントに詳細な手順があります。
#1、搜索镜像
docker search mysql
#2、下载,默认是最新版
#也可以指定版本号 docker pull mysql:版本号
docker pull mysql
#3、查看下载的镜像
docker images
#4、创建mysql容器置并设置root的密码为123456
docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456
#5、查看容器
docker ps
#6、进入容器docker exec -it 容器号 /bin/bash
docker exec -it bab0353e153c /bin/bash
[root@iZ8vb409m8717t5boglt61Z ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bab0353e153c mysql:latest "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:3306->3306/tcp, 33060/tcp mymysql
[root@iZ8vb409m8717t5boglt61Z ~]# docker exec -it bab0353e153c /bin/sh
# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.20 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select version(); #查看mysql的版本号
+-----------+
| version() |
+-----------+
| 8.0.20 |
+-----------+
1 row in set (0.00 sec)
ツールを使用してmysqlに接続します
次のステップは、SQLファイルを実行することです。
5.SpringBootプロジェクトをパッケージ化します
1.データベースURLのローカルホストをサーバーのIPに変更し、Dockerにインストールされているmysqlパスワードを変更します。
次に、パッケージ化して、以下に示すように、右側のMavenを右クリックします。
何度もチェックして、間違えないでください。
2.ビルドが成功するのを待ちます。以下に示すように:
成功すると、ターゲットに次のjarファイルが見つかります。
6、Dockerfileファイルを書き込む
#在home下创建docker文件夹
mkdir /home/docker
アイデアプロジェクトまたはサーバーに書き込むことができます。
Dockerfileの内容は次のとおりです。
#创建Dockerfile文件并打开
vim Dockerfile
#添加的内容如下:
FROM java:8
ADD demo-blog-0.0.1-SNAPSHOT.jar /blog.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/blog.jar"]
説明:
#注意,docker命令全部大写,这是规定。
#From 关键字表示,jar包依赖的环境。java:8 相当于jdk1.8
FROM java:8
#ADD命令
#demo-blog-0.0.1-SNAPSHOT.jar:这是你上传jar包的名称。
#/blog.jar:这是自定义的名称。但是注意要有之前的/
ADD demo-blog-0.0.1-SNAPSHOT.jar /blog.jar
#EXPOSE 项目暴露的端口号
EXPOSE 8080
#/blog.jar此处的名称要和ADD命令后面的一样。
ENTRYPOINT ["java","-jar","/blog.jar"]
サーバーに転送します。
7.実行
/ home / dockerと入力すると、アップロードされたファイル、jar、およびDockerfileが表示されます。
[root@iZ8vb409m8717t5boglt61Z ~]# cd /home/docker
[root@iZ8vb409m8717t5boglt61Z docker]# ls
demo-blog-0.0.1-SNAPSHOT.jar DockerFile
実施した
[root@iZ8vb409m8717t5boglt61Z docker]# docker build -t blog:1.0 .
#说明:
# blog 代表要打包成的镜像名称。按照自己实际情况写。
#:1.0 代表版本号,可以不写则默认为latest
# . 代表为当前目录。这就是为什么一直在步骤一文件夹中进行操作,并且Dockerfile在此文件夹中的原因。
#若之前Dockerfile不在步骤一的文件夹中 则需要指定到对应的地址。
以下が正常に実行されます。
[root@iZ8vb409m8717t5boglt61Z docker]# docker build -t blog:1.0 .
Sending build context to Docker daemon 33.24MB
Step 1/4 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
---> d23bdf5b1b1b
Step 2/4 : ADD demo-blog-0.0.1-SNAPSHOT.jar /blog.jar
---> 4e9a3ac9e03e
Step 3/4 : EXPOSE 8080
---> Running in 0897a57a4d85
Removing intermediate container 0897a57a4d85
---> 67dceec547a7
Step 4/4 : ENTRYPOINT ["java","-jar","/blog.jar"]
---> Running in ed80fc3d7499
Removing intermediate container ed80fc3d7499
---> 19e4ce0e729b
Successfully built 19e4ce0e729b
Successfully tagged blog:1.0
鏡を見る:
[root@iZ8vb409m8717t5boglt61Z docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
blog 1.0 19e4ce0e729b 3 minutes ago 676MB
mysql latest 30f937e841c8 2 days ago 541MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB
java 8 d23bdf5b1b1b 3 years ago 643MB
ミラーを実行する
#这里我开放的是80端口,所以要通过80去映射项目中的8080
[root@iZ8vb409m8717t5boglt61Z docker]# docker run --name blog -d -p 80:8080 blog:1.0
最後に、パブリックネットワークのIPを使用してアクセスできます。
http://自己服务器的公网ip/:80
操作中にエラーなどが発生した場合は、以下のコマンドでログを確認できます。
docker logs 容器id
独自のサーバーアドレスを使用することは安全ではありません。ドメイン名を申請し、ドメイン名をバインドし、ドメイン名を使用してアクセスすることができます。
以下は私の個人的なブログシステムです。いくつかの写真を入れてください。
ソースコードが必要な場合は、ここにアクセスして入手できます。まだ多くの欠点があります。詳細は後で説明します。
メッセージボードインターフェイス。
分類インターフェース。
ラベルインターフェイス。
アーカイブインターフェース。