<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nguyễn Công Trọng</title>
    <description>The latest articles on DEV Community by Nguyễn Công Trọng (@tronginc).</description>
    <link>https://dev.to/tronginc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F562090%2F72cc9264-8b8f-4005-ae6b-0ebc7fd6b598.jpeg</url>
      <title>DEV Community: Nguyễn Công Trọng</title>
      <link>https://dev.to/tronginc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tronginc"/>
    <language>en</language>
    <item>
      <title>Hướng dẫn chạy MSSQL Server trên Windows 10 với Docker</title>
      <dc:creator>Nguyễn Công Trọng</dc:creator>
      <pubDate>Wed, 19 May 2021 08:25:09 +0000</pubDate>
      <link>https://dev.to/tronginc/h-ng-d-n-ch-y-mssql-server-tren-windows-10-v-i-docker-34il</link>
      <guid>https://dev.to/tronginc/h-ng-d-n-ch-y-mssql-server-tren-windows-10-v-i-docker-34il</guid>
      <description>&lt;p&gt;Với sinh viên IT, &lt;strong&gt;SQL Server&lt;/strong&gt; là công cụ không thể thiếu trong quá trình học tập. Nhưng việc cài đặt mất rất nhiều thời gian mà còn dễ xảy ra lỗi, với &lt;strong&gt;Docker trên Windows 10&lt;/strong&gt;, ta có thể chạy &lt;strong&gt;MS SQL Server 2016 Developer&lt;/strong&gt; với chỉ... 1 dòng lệnh.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Lưu ý: &lt;code&gt;Microsoft SQL Server Developer&lt;/code&gt; chỉ nên được dùng để &lt;strong&gt;DEV&lt;/strong&gt; hay &lt;strong&gt;TEST&lt;/strong&gt;, không khuyến khích sử dùng trong môi trường thực tế. &lt;br&gt;
Nếu muốn sử dụng cho sản phẩm thực tế, hãy dùng image &lt;a href="https://hub.docker.com/_/microsoft-mssql-server"&gt;Microsoft SQL Server&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Cài đặt Docker
&lt;/h2&gt;

&lt;p&gt;Trước khi đến với bài viết, vui lòng &lt;a href="https://hub.docker.com/editions/community/docker-ce-desktop-windows"&gt;cài đặt Docker cho Windows 10&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2. Switch to Windows containers...
&lt;/h2&gt;

&lt;p&gt;Vì &lt;strong&gt;MS SQL Server 2016 Developer&lt;/strong&gt; được xây dựng cho &lt;strong&gt;Windows container&lt;/strong&gt;, cho nên ta phải chuyển loại containers của &lt;strong&gt;Docker&lt;/strong&gt; sang &lt;strong&gt;Windows container&lt;/strong&gt;.&lt;br&gt;
Mở &lt;strong&gt;Docker&lt;/strong&gt;, sau đó click chuột phải vào biểu tượng &lt;strong&gt;Docker&lt;/strong&gt; ở dưới &lt;strong&gt;System Tray&lt;/strong&gt; (góc dưới bên phải của màn hình).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nếu thấy menu &lt;code&gt;Switch to Linux containers...&lt;/code&gt; thì chuyển qua bước 3.&lt;/li&gt;
&lt;li&gt;Nếu thấy menu &lt;code&gt;Switch to Windows containers...&lt;/code&gt; thì click để chuyển sang loại container của Windows.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Nếu gặp lỗi &lt;code&gt;Containers feature is disabled. Enable it using the PowerShell script.&lt;/code&gt; thì mở &lt;strong&gt;Windows PowerShell&lt;/strong&gt; với quyền &lt;strong&gt;Administrator&lt;/strong&gt; lên và chạy lệnh &lt;code&gt;Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All&lt;/code&gt; sau đó khởi động lại máy là được.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  3. Chạy MS SQL Server Developer
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 1433:1433 &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;sa_password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;SA_PASSWORD&amp;gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;ACCEPT_EULA&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Y microsoft/mssql-server-windows-developer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Mặc định &lt;strong&gt;SQL Server&lt;/strong&gt; được cài đặt với tên người dùng (username) để đăng nhập là &lt;strong&gt;sa&lt;/strong&gt; (viết tắt của cụm từ "&lt;strong&gt;system administrator&lt;/strong&gt;") là quyền cao cấp nhất của &lt;strong&gt;SQL Server&lt;/strong&gt;, ta đặt password của user này qua tham số &lt;code&gt;sa_password&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SA_PASSWORD&lt;/code&gt; phải đặt phức tạp tý (không phải &lt;code&gt;1&lt;/code&gt;, hay &lt;code&gt;123&lt;/code&gt; hay &lt;code&gt;123456&lt;/code&gt;, nếu không &lt;strong&gt;SQL Server&lt;/strong&gt; sẽ từ chối xác thực đăng nhập.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ACCEPT_EULA&lt;/code&gt; là điều khoản sử dụng, chấp thuận bằng giá trị &lt;strong&gt;Y&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quá trình chạy trong &lt;strong&gt;lần đầu&lt;/strong&gt; sẽ mất rất nhiều thời gian tùy vào tốc độ mạng của bạn.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. Chạy lại container cũ như thế nào?
&lt;/h2&gt;

&lt;p&gt;Khi bạn khởi động lại máy hay mở lại &lt;strong&gt;Docker&lt;/strong&gt; thì làm sao để mở lại &lt;strong&gt;container&lt;/strong&gt; cũ để tiếp tục sử dụng để tránh việc mất đi dữ liệu?&lt;/p&gt;

&lt;p&gt;Xem tất cả các container đang có bằng lệnh &lt;code&gt;docker ps -a&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\T&lt;/span&gt;RONG&amp;gt;docker ps &lt;span class="nt"&gt;-a&lt;/span&gt;
CONTAINER ID   IMAGE                                      COMMAND                  CREATED       STATUS                            PORTS     NAMES
fadc83e27488   microsoft/mssql-server-windows-developer   &lt;span class="s2"&gt;"powershell -Command…"&lt;/span&gt;   4 hours ago   Exited &lt;span class="o"&gt;(&lt;/span&gt;1073807364&lt;span class="o"&gt;)&lt;/span&gt; 3 hours ago             ecstatic_johnson
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ở đây ta thấy &lt;strong&gt;CONTAINER ID&lt;/strong&gt;: &lt;code&gt;fadc83e27488&lt;/code&gt; có trạng thái là &lt;code&gt;Exited&lt;/code&gt;, để chạy lại container này, ta sử dụng lệnh &lt;code&gt;docker start &amp;lt;CONTAINER ID&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;C:&lt;span class="se"&gt;\U&lt;/span&gt;sers&lt;span class="se"&gt;\T&lt;/span&gt;RONG&amp;gt;docker start fadc83e27488
fadc83e27488
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vậy là xong. Hãy để lại ý kiến của bạn trong phần bình luận nhé.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tham khảo:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://hub.docker.com/r/microsoft/mssql-server-windows-developer/"&gt;https://hub.docker.com/r/microsoft/mssql-server-windows-developer/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-10"&gt;https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-10&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
    </item>
    <item>
      <title>Sử dụng Docker để chạy website Wordpress thay cho XAMPP trên Windows 10</title>
      <dc:creator>Nguyễn Công Trọng</dc:creator>
      <pubDate>Wed, 19 May 2021 08:21:48 +0000</pubDate>
      <link>https://dev.to/tronginc/s-d-ng-docker-d-ch-y-website-wordpress-thay-cho-xampp-tren-windows-10-13dc</link>
      <guid>https://dev.to/tronginc/s-d-ng-docker-d-ch-y-website-wordpress-thay-cho-xampp-tren-windows-10-13dc</guid>
      <description>&lt;p&gt;Từ trước giờ nếu bạn dùng Windows để xây dựng website bằng &lt;strong&gt;wordpress&lt;/strong&gt; chắn hẳn bạn đã từng xử dụng XAMPP để host trang web wordpress ở máy bạn. &lt;br&gt;
&lt;br&gt;&lt;br&gt;
Bài viết này sẽ hướng dẫn bạn host trang web wordpress  bằng Docker trên Windows 10 cũng như Mac OSX hay Linux.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Bật chế độ thử nghiệm trên Docker (Chỉ Windows)
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Đối với những bạn sử dụng &lt;strong&gt;Mac OSX&lt;/strong&gt; hay &lt;strong&gt;Linux&lt;/strong&gt; thì bỏ qua bước này&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mở &lt;strong&gt;Docker&lt;/strong&gt; lên, click vào &lt;strong&gt;Setting&lt;/strong&gt; (Biểu tượng răng cưa), thay đổi &lt;code&gt;experimental&lt;/code&gt; sang &lt;code&gt;true&lt;/code&gt; nếu đang có giá trị &lt;code&gt;false&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"registry-mirrors"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"insecure-registries"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"debug"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"experimental"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Click &lt;strong&gt;Apply &amp;amp; Restart&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Cấu hình
&lt;/h2&gt;

&lt;p&gt;Tạo thư mục chứa website wordpress của bạn, sau đó vào thư mục vừa tạo, tạo file &lt;code&gt;docker-compose.yml&lt;/code&gt; với nội dung như sau:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: somewordpress 

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    volumes: ['./:/var/www/html']
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Các tham số bạn cần chú ý và đặt lại ở đây là:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;MYSQL_ROOT_PASSWORD&lt;/code&gt;: Mật khẩu user &lt;strong&gt;root&lt;/strong&gt; của database.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WORDPRESS_DB_USER&lt;/code&gt;: Tài khoản database trang wordpress của bạn.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WORDPRESS_DB_PASSWORD&lt;/code&gt;: Mật khẩu database trang wordpress của bạn.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WORDPRESS_DB_NAME&lt;/code&gt;: Tên database trang wordpress của bạn.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Khởi chạy
&lt;/h2&gt;

&lt;p&gt;Mở &lt;code&gt;cmd&lt;/code&gt; nằm trong thư mục vừa tạo, chạy lệnh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;docker-compose&lt;/code&gt; được cài kèm với docker, lệnh &lt;code&gt;docker-compose&lt;/code&gt; sẽ chạy tất cả các service đã định nghĩa trong file &lt;code&gt;docker-compose.yml&lt;/code&gt; ở trên.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Vậy là xong, vào trình duyệt gõ địa chỉ &lt;code&gt;http://localhost:8000&lt;/code&gt;, bạn sẽ thấy trang cài đặt wordpress. Nhập thông tin website và cài đặt như bình thường. Bạn sẽ thấy toàn bộ code trang wordpress của bạn nằm trong thư mục mà bạn vừa tạo ở trên. &lt;br&gt;
&lt;br&gt;&lt;br&gt;
Để truy cập &lt;code&gt;phpmyadmin&lt;/code&gt;, bạn hãy truy cập &lt;code&gt;http://localhost:8080&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Tắt và dọn dẹp:
&lt;/h2&gt;

&lt;p&gt;Mở &lt;strong&gt;cmd&lt;/strong&gt; ở thư mục chứa file &lt;code&gt;docker-compose.yml&lt;/code&gt; và sử dụng các lệnh sau&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tắt, xóa container nhưng giữ lại data: &lt;code&gt;docker-compose down&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Tắt và xóa tất cả &lt;code&gt;docker-compose down --volumes&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ngoài &lt;strong&gt;Windows 10&lt;/strong&gt; ra thì file &lt;code&gt;docker-compose.yml&lt;/code&gt; ở trên còn áp dụng được cho &lt;strong&gt;Docker&lt;/strong&gt; trên &lt;strong&gt;Mac OSX&lt;/strong&gt; hay &lt;strong&gt;Linux&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tham khảo&lt;/strong&gt;:&lt;br&gt;
&lt;a href="https://docs.docker.com/compose/wordpress/"&gt;https://docs.docker.com/compose/wordpress/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hub.docker.com/r/phpmyadmin/phpmyadmin/"&gt;https://hub.docker.com/r/phpmyadmin/phpmyadmin/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>wordpress</category>
    </item>
  </channel>
</rss>
