<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Thuộc lòng 7 lệnh này để ngừng loay hoay với các Docker container</title>
<meta name="description" content="Thuộc lòng 7 lệnh này để ngừng loay hoay với các Docker container - Savefile - Tin Tức -...">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Thuộc lòng 7 lệnh này để ngừng loay hoay với các Docker container">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;thuoc-long-7-lenh-nay-de-ngung-loay-hoay-voi-cac-docker-container-11909.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/thuoc-long-7-lenh-nay-de-ngung-loay-hoay-voi-cac-docker-container-11909.html">
<link rel="shortcut icon" href="https://nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/thuoc-long-7-lenh-nay-de-ngung-loay-hoay-voi-cac-docker-container-11909.html">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://nguoicodonvn2008.info/">https://nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Thuộc lòng 7 lệnh này để ngừng loay hoay với các Docker container</h1>
		<ul class="list-inline">
			<li>Thứ tư - 17/12/2025 23:03</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
				<div class="imghome">
			<img alt="Thuộc lòng 7 lệnh này để ngừng loay hoay với các Docker container" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-7.jpg" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;">Docker cho phép các ứng dụng và những dependency của chúng chạy ổn định trên máy tính bằng cách đóng gói chúng vào các container, là các môi trường portable, biệt lập. Đây là giải pháp lý tưởng nếu bạn muốn có quy trình làm việc đáng tin cậy, có thể lặp lại mà không cần lo lắng về việc một công cụ hoặc hệ thống có hoạt động trên máy của mình hay không.<br />
<br />
Nhưng việc sử dụng Docker hiệu quả không chỉ dừng lại ở việc cài đặt và chạy container. Bạn sẽ tận dụng tối đa Docker khi bạn biết các lệnh mang lại cho bạn khả năng hiển thị, kiểm soát và hiệu quả.</p>

<div style="text-align: justify;">&nbsp;</div>

<h2 style="text-align: justify;">Docker Compose</h2>

<h3 style="text-align: justify;">Chạy môi trường đa service một cách tự tin</h3>

<figure>
<div style="text-align: justify;"><img alt="" data-adbro-processed="true" data-i="0" data-src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-1.jpg" data-was-processed="true" height="388" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-1.jpg" width="750" /></div>
</figure>

<p style="text-align: justify;">Trước khi bắt đầu sử dụng lệnh Compose, mọi người thường chạy từng container một và chỉ có thể hy vọng chúng kết nối chính xác. Cách tiếp cận này là thủ công và thường dẫn đến quy trình làm việc dễ xảy ra lỗi. Tuy nhiên, việc sử dụng lệnh Compose đã biến Docker thành một quy trình làm việc tự động, chỉ với một lệnh duy nhất, trong đó các service, hình ảnh, cổng, biến môi trường và volume được định nghĩa trong file docker-compose.yml.</p>

<p style="text-align: justify;">Lệnh dưới đây cho phép khởi động toàn bộ stack trong nền:</p>

<pre id="pre0">
<code>docker compose up -d</code></pre>

<p style="text-align: justify;">Sau khi thử nghiệm, bạn có thể tắt mọi thứ bằng lệnh:</p>

<pre id="pre1">
<code>docker compose down</code></pre>

<p style="text-align: justify;">Với cặp lệnh đơn giản này, bạn sẽ kiểm soát Docker tốt hơn.</p>

<h2 style="text-align: justify;">Docker exec -it &lt;container&gt; bash</h2>

<h3 style="text-align: justify;">Khắc phục sự cố container từ bên trong</h3>

<figure>
<div style="text-align: justify;"><img alt="Truy cập vào Docker container bằng exec" data-i="1" data-src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-2.jpg" data-was-processed="true" height="436" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-2.jpg" width="825" /></div>

<figcaption>
<div style="text-align: justify;">Truy cập vào Docker container bằng exec</div>
</figcaption>
</figure>

<p style="text-align: justify;">Điều cần thiết là phải biết cách khắc phục sự cố Docker container, và dưới đây là lệnh thường được dùng. Hãy sử dụng nó khi cần kiểm tra đường dẫn file, xác minh cấu hình, chạy thử nghiệm nhanh hoặc gỡ lỗi sự cố ngay tại nơi chúng xảy ra:</p>

<pre id="pre2">
<code>docker exec -it myapp bash</code></pre>

<p style="text-align: justify;">Nếu bash không có sẵn, bạn có thể chuyển sang lệnh này:</p>

<pre id="pre3">
<code>docker exec -it myapp sh</code></pre>

<p style="text-align: justify;">Sử dụng một trong hai lệnh này sẽ mở một shell tương tác, cho phép bạn khám phá môi trường thực tế của container.</p>

<h2 style="text-align: justify;">Docker logs -f &lt;container&gt;</h2>

<h3 style="text-align: justify;">Đọc nhật ký trực tiếp và ngừng phỏng đoán</h3>

<figure>
<div style="text-align: justify;"><img alt="Kiểm tra nhiều container" data-i="2" data-src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-3.jpg" data-was-processed="true" height="481" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-3.jpg" width="825" /></div>

<figcaption>
<div style="text-align: justify;">Kiểm tra nhiều container</div>
</figcaption>
</figure>

<p style="text-align: justify;">Nhật ký cung cấp một cách hữu ích để phát hiện các vấn đề tiềm ẩn, và lệnh Docker này rất tiện dụng:</p>

<pre id="pre4">
<code>docker logs -f myapp</code></pre>

<p style="text-align: justify;">Với lệnh này, bạn có thể truy cập nhật ký khi một container không khởi động được. Thêm flag -f để giữ cho nhật ký được truyền trực tiếp. Bằng cách đó, bạn có thể theo dõi trình tự khởi động của container. Việc này giúp dễ dàng nhận thấy thông tin đăng nhập cơ sở dữ liệu bị thiếu, lỗi chính tả biến môi trường hoặc các cổng được cấu hình kém.</p>

<p style="text-align: justify;">Đôi khi, nhật ký có thể dài, khiến việc tìm kiếm các yếu tố cụ thể hoặc khắc phục sự cố trở nên khó khăn. Do đó, hãy giới hạn kết quả nhật ký mà bạn thấy ở 50 dòng cuối cùng bằng lệnh dưới đây:</p>

<pre id="pre5">
<code>docker logs --tail 50 myapp</code></pre>

<h2 style="text-align: justify;">Docker build</h2>

<h3 style="text-align: justify;">Xây dựng các image có thể dự đoán được với việc gắn tag đúng cách</h3>

<figure>
<div style="text-align: justify;"><img alt="Sử dụng lệnh docker build" data-i="3" data-src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-4.jpg" data-was-processed="true" height="378" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-4.jpg" width="825" /></div>

<figcaption>
<div style="text-align: justify;">Sử dụng lệnh docker build</div>
</figcaption>
</figure>

<p style="text-align: justify;">Lệnh build yêu cầu daemon Docker bắt đầu quá trình tạo image. Khi mới bắt đầu sử dụng Docker, các bản build thường rất lộn xộn. Mọi người thường không gắn tag gì cả và nhanh chóng có nhiều image không được gắn nhãn. Lệnh dưới đây sẽ khắc phục các bản build lộn xộn, không được gắn tag của bạn:</p>

<pre id="pre6">
<code>docker build -t myapp .</code></pre>

<p style="text-align: justify;">Việc thêm flag&nbsp;<strong>-t</strong>&nbsp;sẽ gắn tag cho ảnh kết quả, giúp dễ dàng tái sử dụng và triển khai. Tiến thêm một bước nữa, bạn có thể thêm thêm phiên bản bằng lệnh dưới đây:</p>

<pre id="pre7">
<code>docker build -t myapp:v1 .</code></pre>

<p style="text-align: justify;">Với điều này, tôi có thể kiểm tra các tính năng mà không bị mất dấu các bản build ổn định. Một lợi ích khác của việc gắn tag là ngăn ngừa sự lộn xộn, loại bỏ các image &quot;lơ lửng&quot; gây lãng phí không gian.</p>

<h2 style="text-align: justify;">Docker ps -a</h2>

<h3 style="text-align: justify;">Ngừng việc mất dấu các container</h3>

<figure>
<div style="text-align: justify;"><img alt="Hiển thị tất cả các Docker container" data-i="4" data-src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-5.jpg" data-was-processed="true" height="450" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-5.jpg" width="825" /></div>

<figcaption>
<div style="text-align: justify;">Hiển thị tất cả các Docker container</div>
</figcaption>
</figure>

<p style="text-align: justify;">Sau một thời gian sử dụng Docker, bạn thường bị mất dấu các container của mình, điều này khiến công cụ trở nên khó đoán. Một số cổng ngừng hoạt động và Docker đôi khi từ chối tạo container vì một số container mà bạn nghĩ mình đã xóa vẫn còn đó. Để thoát khỏi tình trạng này, hãy sử dụng lệnh Docker dưới đây, hiển thị các container đã thoát, bị lỗi hoặc dừng ngay lập tức:</p>

<pre id="pre8">
<code>docker ps -a</code></pre>

<p style="text-align: justify;">Có thể sử dụng lệnh dưới đây để viết kịch bản hoặc dọn dẹp nhanh, vì nó chỉ trả về ID của container:</p>

<pre id="pre9">
<code>docker ps -q</code></pre>

<p style="text-align: justify;">Để xóa một container bị quên, hãy sử dụng lệnh:</p>

<pre id="pre10">
<code>docker rm</code></pre>

<p style="text-align: justify;">Một trong những kỹ năng Docker bị đánh giá thấp nhất là biết những gì tồn tại và những gì có thể đang âm thầm gặp lỗi.</p>

<h2 style="text-align: justify;">Docker inspect &lt;container&gt;</h2>

<h3 style="text-align: justify;">Xem mọi thứ về container một cách chi tiết</h3>

<figure>
<div style="text-align: justify;"><img alt="Sử dụng lệnh Docker inspect" data-i="5" data-src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-6.jpg" data-was-processed="true" height="449" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-6.jpg" width="825" /></div>

<figcaption>
<div style="text-align: justify;">Sử dụng lệnh Docker inspect</div>
</figcaption>
</figure>

<p style="text-align: justify;">Lệnh docker inspect cung cấp sự rõ ràng khi Docker bắt đầu hiển thị các sự cố kết nối hoặc hành vi không mong muốn. Dưới đây là dạng cơ bản của lệnh:</p>

<pre id="pre11">
<code>docker inspect myapp</code></pre>

<p style="text-align: justify;">Lệnh này hiển thị mọi chi tiết giống như Docker nhìn thấy, bao gồm các biến môi trường, cài đặt mạng, volume và điểm vào. Bạn có thể sử dụng lệnh dưới đây để trích xuất&nbsp;<a data-type="internal" href="https://quantrimang.com/cong-nghe/dia-chi-ip-la-gi-143625" title="Địa chỉ IP là gì?">địa chỉ IP</a>&nbsp;của một container khi tò mò về một thành phần cụ thể.</p>

<pre id="pre12">
<code>docker inspect --format=&#039;{{.NetworkSettings.IPAddress}}&#039; myapp</code></pre>

<p style="text-align: justify;">Bằng cách chạy các lệnh tập trung này, bạn có thể tránh phải xem qua vô số trang JSON để gỡ lỗi các cấu hình sai.</p>

<h2 style="text-align: justify;">Docker system prune</h2>

<h3 style="text-align: justify;">Dọn dẹp tài nguyên Docker không sử dụng một cách an toàn</h3>

<figure>
<div style="text-align: justify;"><img alt="Sử dụng prune để hiển thị các tài nguyên không sử dụng" data-i="6" data-src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-7.jpg" data-was-processed="true" height="493" src="https://st.quantrimang.com/photos/image/2025/12/17/lenh-de-khong-con-loay-hoay-voi-docker-container-7.jpg" width="825" /></div>

<figcaption>
<div style="text-align: justify;">Sử dụng prune để hiển thị các tài nguyên không sử dụng</div>
</figcaption>
</figure>

<p style="text-align: justify;">Khi bạn bắt đầu sử dụng Docker, nó sẽ âm thầm tích lũy các tài nguyên không cần thiết, chẳng hạn như những image cũ, mạng không sử dụng và các container đã dừng. Theo thời gian, điều này sẽ làm chậm mọi thứ nếu không được dọn dẹp. Hãy bắt đầu quy trình dọn dẹp của mình với phiên bản an toàn:</p>

<pre id="pre13">
<code>docker system prune</code></pre>

<p style="text-align: justify;">Lệnh này giữ lại các image của bạn, nhưng xóa các container và mạng không sử dụng. Bạn có thể thực hiện dọn dẹp sâu hơn và xóa cả các image bằng cách chạy lệnh sau:</p>

<pre id="pre14">
<code>docker system prune -a</code></pre>

<p style="text-align: justify;">Cuối cùng, bạn có thể chạy lệnh sau nếu cần xóa các volume không sử dụng có thể chứa hàng gigabyte dữ liệu bị lãng quên:</p>

<pre id="pre15">
<code>docker system prune -a --volumes</code></pre>

<p style="text-align: justify;">Chạy lệnh trên sẽ xóa các volume không sử dụng, nhưng một số có thể thuộc sở hữu của root hoặc người dùng khác. Hiểu về quyền sở hữu và quyền truy cập trong Linux có thể giúp quá trình này an toàn hơn.</p>

<div style="text-align: justify;">&nbsp;</div>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com:
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/thuoc-long-7-lenh-nay-de-ngung-loay-hoay-voi-cac-docker-container-11909.html" title="Thuộc lòng 7 lệnh này để ngừng loay hoay với các Docker container">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/thuoc-long-7-lenh-nay-de-ngung-loay-hoay-voi-cac-docker-container-11909.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://nguoicodonvn2008.info",
            "logo": "https://nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>