{"id":4290,"date":"2022-10-17T05:57:57","date_gmt":"2022-10-16T20:57:57","guid":{"rendered":"https:\/\/blog.wsd.sh\/?p=4290"},"modified":"2022-10-19T05:35:07","modified_gmt":"2022-10-18T20:35:07","slug":"4290","status":"publish","type":"post","link":"https:\/\/blog.wsd.sh\/?p=4290","title":{"rendered":"<small> Docker  and Mariadb  container  install  and connect HeidiSQL<\/small>"},"content":{"rendered":"<p>1. Step<br \/>\n(1) Install docker<br \/>\n(2) Mariadb  container  install<br \/>\n(3) connect HeidiSQL<\/p>\n<p>2. <strong>Prerequisites<\/strong><br \/>\n(1) Install gnome-terminal<\/p>\n<pre>\r\n$ sudo apt install gnome-terminal\r\n<\/pre>\n<p>(2) Uninstall old versions<\/p>\n<pre>\r\n$ sudo apt-get remove docker docker-engine docker.io containerd runc\r\n<\/pre>\n<p>3. <strong>Install Docker<\/strong><br \/>\n(1) Set up the repository<\/p>\n<pre>\r\n $ sudo apt-get update\r\n\r\n $ sudo apt-get install \\\r\n    ca-certificates \\\r\n    curl \\\r\n    gnupg \\\r\n    lsb-release\r\n<\/pre>\n<p>(2) Add Docker\u2019s official GPG key:<\/p>\n<pre>\r\n$ sudo mkdir -p \/etc\/apt\/keyrings\r\n\r\n$ curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg\r\n<\/pre>\n<p>(3) Use the following command to set up the repository:<\/p>\n<pre>\r\nsudo add-apt-repository \"deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\"\r\n<\/pre>\n<p>(4) Install Docker Engine<\/p>\n<pre>\r\n$ sudo apt-get update\r\n\r\n$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin\r\n<\/pre>\n<p>(5) List the versions available in your repo:<\/p>\n<pre>\r\n$ apt-cache madison docker-ce\r\n<\/pre>\n<p>(6) comfirm docker status<\/p>\n<pre> \r\n$ sudo systemctl status docker\r\n<\/pre>\n<p>4. <strong>Run Docker commands without sudo<\/strong><br \/>\n(1) Check for docker group existence<\/p>\n<pre>\r\n$ cat \/etc\/group |grep docker\r\n<\/pre>\n<p>(2) Add username to docker group<\/p>\n<pre>\r\n$ sudo usermod -aG docker ${USER}\r\n<\/pre>\n<p>(3) Apply new group membership<\/p>\n<pre>\r\n$ su - ${USER}\r\n<\/pre>\n<p>(4) Confirm added to docker group<\/p>\n<pre>\r\n$ id -nG\r\n$ cat \/etc\/group |grep docker\r\n<\/pre>\n<p>5. <strong>Using Docker commands<\/strong><\/p>\n<pre>\r\n$ docker info\r\n<\/pre>\n<p>6. <strong>Verify that Docker Engine is installed correctly by running the hello-world image<\/strong><\/p>\n<pre>\r\n$ service docker start\r\n$ docker run hello-world\r\n<\/pre>\n<p>7. <strong>Download image to computer<\/strong><br \/>\n(1) Search image<\/p>\n<pre>\r\n$ docker search ubuntu\r\n<\/pre>\n<p>(2) Download image to computer<\/p>\n<pre>\r\n$ docker pull ubuntu\r\n<\/pre>\n<p>(3) View image list<\/p>\n<pre>\r\n$ docker images\r\nREPOSITORY            TAG       IMAGE ID       CREATED              SIZE\r\nubuntu                latest    216c552ea5ba   11 days ago          77.8MB\r\nhello-world           latest    feb5d9fea6a5   12 months ago        13.3kB\r\n<\/pre>\n<p>(4) Confirm CONTAINER ID <\/p>\n<pre>\r\n$ docker ps -a\r\nCONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                       PORTS     NAMES\r\n45dfc14c1dc9   ubuntu        \"bash\"                   13 minutes ago   Exited (137) 5 minutes ago             crazy_curie\r\nc1670baef172   hello-world   \"\/hello\"                 59 minutes ago   Exited (0) 59 minutes ago              vigorous_nash\r\n<\/pre>\n<p>8. <strong>Run Docker container<\/strong><br \/>\n(1) docker run <\/p>\n<pre>\r\n$ docker run -it ubuntu\r\nroot@ad90866c9f1b:\/# \r\nroot@ad90866c9f1b:\/# exit\r\n<\/pre>\n<p>(2) check CONTAINER ID  and NAMES<\/p>\n<pre>\r\n$ docker ps -l\r\nCONTAINER ID   IMAGE     COMMAND   CREATED         STATUS         PORTS     NAMES\r\n45dfc14c1dc9   ubuntu    \"bash\"    7 minutes ago   Up 7 minutes             crazy_curie\r\n<\/pre>\n<p>9.  <strong>How to save container state as new Docker image <\/strong><br \/>\n(1) new Docker image<\/p>\n<pre>\r\n$ docker commit -m \"added Node.js\" -a \"wsd01\" 45dfc14c1dc9 wsd01\/ubuntu-nodejs\r\nsha256:f2930c27c1455fdcb3abd1b05547ae22724bc19bca32b24bb3f51ea0e36c0d10\r\n<\/pre>\n<p>10.  <strong>Install docker-mariadb image<\/strong><br \/>\n(1) Search image<\/p>\n<pre>\r\n$ docker search mariadb\r\n<\/pre>\n<p>(2) Download image to computer<\/p>\n<pre>\r\n$ docker pull mariacb\r\n<\/pre>\n<p>(3) Initirize a mariadb server instance &#038; start<br \/>\n&#8211; name mariadb_1 (docker NAMES)<br \/>\n&#8211; MARIADB_USER=admin<br \/>\n&#8211; MARIADB_PASSWORD=123456<br \/>\n&#8211; MARIADB_ROOT_PASSWORD=12345678<br \/>\n\u2013 dp 3307:3306 ( Local side port number : Container side port number)<\/p>\n<pre>\r\n$ docker run --detach --name mariadb_1 --env MARIADB_USER=admin --env MARIADB_PASSWORD=123456 --env MARIADB_ROOT_PASSWORD=12345678  -dp 3307:3306 mariadb:latest\r\n<\/pre>\n<p>(4) check CONTAINER ID  and NAMES<br \/>\n$ docker ps -a<\/p>\n<pre>\r\nCONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS                     PORTS                                       NAMES\r\nb83838cded47   mariadb:latest   \"docker-entrypoint.s\u2026\"   32 minutes ago   Up 15 minutes              0.0.0.0:3307->3306\/tcp, :::3307->3306\/tcp   mariadb_1\r\n45dfc14c1dc9   ubuntu           \"bash\"                   5 hours ago      Exited (137) 4 hours ago                                               crazy_curie\r\nc1670baef172   hello-world      \"\/hello\"                 5 hours ago      Exited (0) 5 hours ago                                                 vigorous_nash\r\n<\/pre>\n<p>(5) Start mariadb_1<\/p>\n<pre>\r\n$ docker start mariadb_1\r\n<\/pre>\n<p>(6) Show container list<\/p>\n<pre>\r\n$ docker container ls\r\nCONTAINER ID   IMAGE            COMMAND                  CREATED        STATUS         PORTS                                       NAMES\r\nb83838cded47   mariadb:latest   \"docker-entrypoint.s\u2026\"   28 hours ago   Up 2 seconds   0.0.0.0:3307->3306\/tcp, :::3307->3306\/tcp   mariadb_1\r\n<\/pre>\n<p>(7) HeidiSQL session manager<br \/>\n&#8211; Session name:docker-mariadb_1<br \/>\n&#8211; user : admin<br \/>\n&#8211; port 3307<br \/>\n&#8211; Host : 127.0.0.1<br \/>\n<img decoding=\"async\" loading=\"lazy\" width=\"1271\" height=\"773\" src=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-46-36.png\" alt=\"\" class=\"alignnone size-medium wp-image-4308\" srcset=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-46-36.png 1271w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-46-36-300x182.png 300w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-46-36-1024x623.png 1024w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-46-36-768x467.png 768w\" sizes=\"(max-width: 1271px) 100vw, 1271px\" \/><\/p>\n<p>(8) Connect mariadb_1<br \/>\n<img decoding=\"async\" loading=\"lazy\" width=\"1501\" height=\"540\" src=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-47-14.png\" alt=\"\" class=\"alignnone size-medium wp-image-4310\" srcset=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-47-14.png 1501w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-47-14-300x108.png 300w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-47-14-1024x368.png 1024w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-11-47-14-768x276.png 768w\" sizes=\"(max-width: 1501px) 100vw, 1501px\" \/><\/p>\n<p>(9) Stop mariadb_1<\/p>\n<pre>\r\n$ docker stop mariadb_1\r\n<\/pre>\n<p>(10) Show container list<\/p>\n<pre>\r\n$ docker container ls\r\nCONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES\r\n<\/pre>\n<p>(11) Container shell access and update and exit<\/p>\n<pre>\r\n$ docker start mariadb_1\r\n$ docker exec -it mariadb_1 bash\r\nroot@700724a54424:\/# apt-get update\r\nroot@700724a54424:\/# exit\r\n<\/pre>\n<p>(13) Viewing MariaDB logs<\/p>\n<pre>\r\n$ docker logs mariadb_1\r\n<\/pre>\n<p>11.  <strong>Mariadb permissions <\/strong><br \/>\n(1) exec mariadb<\/p>\n<pre>\r\n$ docker exec -it mariadb_1 bash\r\n<\/pre>\n<p>(2) login mysql<\/p>\n<pre>\r\nroot@700724a54424:\/# mysql -u root -p\r\nEnter password: \r\nWelcome to the MariaDB monitor.  Commands end with ; or \\g.\r\nYour MariaDB connection id is 12\r\nServer version: 10.9.3-MariaDB-1:10.9.3+maria~ubu2204 mariadb.org binary distribution\r\n\r\nCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.\r\n\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\r\n\r\nMariaDB [(none)]> \r\n<\/pre>\n<p>(3)<\/p>\n<pre>\r\nMariaDB [(none)]>  create user 'admin'@'localhost' identified by '123456';\r\n<\/pre>\n<p>(4) grant admin<\/p>\n<pre>\r\nMariaDB [(none)]>  grant all privileges on *.* to 'admin'@'%' identified by '123456' WITH GRANT OPTION;\r\n<\/pre>\n<p>(5) show user<\/p>\n<pre>\r\nMariaDB [(none)]>  SELECT Host, User FROM mysql.user;\r\n+-----------+-------------+\r\n| Host      | User        |\r\n+-----------+-------------+\r\n| %         | admin       |\r\n| %         | root        |\r\n| localhost | admin       |\r\n| localhost | mariadb.sys |\r\n| localhost | root        |\r\n+-----------+-------------+\r\n5 rows in set (0.010 sec)\r\n<\/pre>\n<p>(4) exit<\/p>\n<pre>\r\nMariaDB [(none)]> Ctrl-C -- exit!\r\nAborted\r\nroot@b83838cded47:\/# exit\r\n$ \r\n<\/pre>\n<p>12.  <strong>pip install <\/strong><br \/>\n(1) Force install pip<\/p>\n<pre>\r\n$ mkdir mariadb\r\n$ cd  mariadb\r\n$ python3 -m pip install mysql-connector-python\r\n\/usr\/bin\/python3: No module named pip\r\n$ curl https:\/\/bootstrap.pypa.io\/get-pip.py -o get-pip.py\r\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\r\n                                 Dload  Upload   Total   Spent    Left  Speed\r\n100 2509k  100 2509k    0     0  4950k      0 --:--:-- --:--:-- --:--:-- 4959k\r\n\/Mariadb$ sudo python3 get-pip.py --force-reinstall\r\nCollecting pip\r\n  Downloading pip-22.3-py3-none-any.whl (2.1 MB)\r\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 2.1\/2.1 MB 9.1 MB\/s eta 0:00:00\r\nCollecting setuptools\r\n  Downloading setuptools-65.5.0-py3-none-any.whl (1.2 MB)\r\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.2\/1.2 MB 10.4 MB\/s eta 0:00:00\r\nCollecting wheel\r\n  Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)\r\nInstalling collected packages: wheel, setuptools, pip\r\nSuccessfully installed pip-22.3 setuptools-65.5.0 wheel-0.37.1\r\nWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https:\/\/pip.pypa.io\/warnings\/venv\r\n$ python3 -m pip install mysql-connector-python\r\nDefaulting to user installation because normal site-packages is not writeable\r\nCollecting mysql-connector-python\r\n  Downloading mysql_connector_python-8.0.31-cp310-cp310-manylinux1_x86_64.whl (23.5 MB)\r\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 23.5\/23.5 MB 10.1 MB\/s eta 0:00:00\r\nRequirement already satisfied: protobuf<=3.20.1,>=3.11.0 in \/usr\/lib\/python3\/dist-packages (from mysql-connector-python) (3.12.4)\r\nInstalling collected packages: mysql-connector-python\r\nSuccessfully installed mysql-connector-python-8.0.31\r\n$ \r\n<\/pre>\n<p>13.  <strong>Create Data <\/strong><br \/>\n(1) Create Data<\/p>\n<pre>\r\n$ docker exec -it mariadb_1 bash\r\n# mysql -u root -p\r\nMariaDB [(none)]> CREATE DATABASE sample;\r\nMariaDB [(none)]> USE sample;\r\nMariaDB [sample]> CREATE TABLE table_sample (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(10));\r\nMariaDB [sample]> INSERT INTO table_sample (name) VALUES ('example_0'), ('example_1'), ('example_2');\r\nMariaDB [sample]> SELECT * FROM table_sample;\r\n+----+-----------+\r\n| id | name      |\r\n+----+-----------+\r\n|  1 | example_0  |\r\n|  2 | example_1  |\r\n|  3 | example_2  |\r\n+----+-----------+\r\n3 rows in set (0.001 sec)\r\n\r\nMariaDB [sample]> exit\r\nBye\r\nroot@b83838cded47:\/# exit\r\nexit\r\n$\r\n<\/pre>\n<p>(2) Confirm with HeidiSQL<br \/>\n<img decoding=\"async\" loading=\"lazy\" width=\"1012\" height=\"447\" src=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-15-33-50.png\" alt=\"\" class=\"alignnone size-medium wp-image-4348\" srcset=\"https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-15-33-50.png 1012w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-15-33-50-300x133.png 300w, https:\/\/blog.wsd.sh\/wp-content\/uploads\/2022\/10\/Screenshot-from-2022-10-17-15-33-50-768x339.png 768w\" sizes=\"(max-width: 1012px) 100vw, 1012px\" \/><\/p>\n<p>14.  <strong>Exec query <\/strong><br \/>\n(1) connect.py <\/p>\n<pre>\r\n$ cat connect.py\r\nimport mysql.connector\r\n\r\ncon = mysql.connector.connect(db=\"sample\",\r\n                              host=\"localhost\",\r\n                              port=3307,\r\n                              user=\"admin\",\r\n                              password=\"123456\")\r\ncur = con.cursor()\r\nquery = \"SELECT id, name FROM table_sample\"\r\n\r\ncur.execute(query)\r\nrows = cur.fetchall()\r\nprint(rows)\r\ncur.close()\r\ncon.close()\r\n<\/pre>\n<p>(2) exec connect.py<\/p>\n<pre>\r\n$ python3 connect.py \r\n[(1, 'example_0'), (2, 'example_1'), (3, 'example_2')]\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1. Step (1) Install docker (2) Mariadb container install (3) connect HeidiSQL 2. Prerequisites (1) Install gno&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts\/4290"}],"collection":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4290"}],"version-history":[{"count":81,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts\/4290\/revisions"}],"predecessor-version":[{"id":4292,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=\/wp\/v2\/posts\/4290\/revisions\/4292"}],"wp:attachment":[{"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.wsd.sh\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}