Nghĩa là bạn start fail đó, vì danh sách "docker ps" chính là những container đang chạy.
"docker ps -a" để xem tất cả rồi lấy id rồi start, còn không thấy nghĩa là mình start fail rồi
Có khi nào bạn chạy lệnh: docker start container_id, rồi xem ds container đã start mà vẫn ko thấy nó trong ds đã start ko bạn, mình đang bị vấn đề đó. Mặc dù mình đã restart container id đó nhiều lần mà mẫ ko thấy trong ds đã running. Hoặc là đã start dc rồi mà vài giây sau vô lại thì ko còn thấy trong ds start nữa
Bây giờ nhá bình thường mysql server của mình chạy port 3306, khi đó ví dụ mình dùng phpmyadmin để làm interface connect vào thao tác với db thì đường dẫn nó sẽ là localhost:3306/phpmyadmin.... Đó là trên máy local nhưng giờ mysql server của mình được chạy bên trong container thì mình sẽ expose ra cổng 3307 để bên ngoài có thể connect và thao tác chẳng hạn -p 3306:3307 thì khi đó mình có thể xem db bên trong container như sau localhost:3307/....
Có chứ c? C có thể export cổng của db ra bên ngoài là 3307 để tạo cơ sở dữ liệu bằng tay sau đó tương tác db như bình thường.
Hoặc sử dụng "php artisan migrate"
vào trong container bằng lệnh "docker exec -it container_id bash" rồi chạy php artisan trong đó
Mình vừa tìm được cách thấy được file trong thư mục được mount là trước khi chạy lệnh đó thì mình Vào Setting (của Docker) => Chọn Share Drivers => Tick vào Ổ đĩa chứa project của mình. Rồi remove container cũ và chạy lạy lệnh đó sẽ thấy được các files trong thư mục project được mount.
Sau khi mình chạy lệnh: docker exec -it container_id_nay_copy bash thì có thư mục myproject nhưng trong thư mục myproject đó ko có file nào cả, chỉ là một folder empty.
Bạn kiểm tra container đang chạy bằng "docker ps".
Sau đó copy id của container đó (container tutum mà start ấy nhé)
Chạy lạnh sau: "docker exec -it container_id_nay_copy bash"
Bây giờ đã vào được bash bên trong container rồi đó, bạn kiểm tra trong đường dẫn /var/www/html trong container có "myproject" không nhé.
Và bạn kiểm tra lại cả đường dẫn của bạn "~/../../xampp/htdocs/myproject" có đúng không nhé, bằng cách vào terminal rồi cd tới xem kết quả như nào nha
Mình chạy thử localhost:9000 thì OK rồi. Nhưng mình chạy localhost:9000/myproject thì trong đó không có file nào hết (tức là trong thư mục này /var/www/html/myproject ko có file nào của myproject) nhưng trên máy của mình thì trong thư mục myproject có tất cả các file của myproject? Vậy mình có cần bước nào để sau khi chạy lệnh này thì trong thư mục var/www/html/myproject sẽ có tất cả các file giống như bên máy mình:
THẢO LUẬN
Nghĩa là bạn start fail đó, vì danh sách "docker ps" chính là những container đang chạy. "docker ps -a" để xem tất cả rồi lấy id rồi start, còn không thấy nghĩa là mình start fail rồi
Có khi nào bạn chạy lệnh: docker start container_id, rồi xem ds container đã start mà vẫn ko thấy nó trong ds đã start ko bạn, mình đang bị vấn đề đó. Mặc dù mình đã restart container id đó nhiều lần mà mẫ ko thấy trong ds đã running. Hoặc là đã start dc rồi mà vài giây sau vô lại thì ko còn thấy trong ds start nữa
Like
Mình cũng chưa thử trên win, mình đang sử dụng với ubuntu 16.04 hehe,
Bây giờ nhá bình thường mysql server của mình chạy port 3306, khi đó ví dụ mình dùng phpmyadmin để làm interface connect vào thao tác với db thì đường dẫn nó sẽ là localhost:3306/phpmyadmin.... Đó là trên máy local nhưng giờ mysql server của mình được chạy bên trong container thì mình sẽ expose ra cổng 3307 để bên ngoài có thể connect và thao tác chẳng hạn -p 3306:3307 thì khi đó mình có thể xem db bên trong container như sau localhost:3307/....
Thì khi đó mình thao tác như bình thường với db
Còn về connect, db với ứng dụng có 2 cách thực hiện bạn đọc bài này của mình nhé hehe https://viblo.asia/telosma/posts/MLzGObNovpq
cái này mình phải connect với mysql trong container và import database vô cho nó đúng ko bạn?
Cài này mình chạy ổn rồi. Cảm ơn bạn trả lời nhiệt tình nhé!
Mình dùng windows 10
Nhiều bài viết hữu ích quá chị ạ
Bạn cứ test thử với một file .php chưa cần connect DB xem docker của bạn đã chạy ổn chưa nhé
Có chứ c? C có thể export cổng của db ra bên ngoài là 3307 để tạo cơ sở dữ liệu bằng tay sau đó tương tác db như bình thường. Hoặc sử dụng "php artisan migrate" vào trong container bằng lệnh "docker exec -it container_id bash" rồi chạy php artisan trong đó
(y) Thế là đang dùng win hả
Muốn chạy được project đó có cần tạo trước database trong mysql được cài đặt trong docker mà project đó chọn ko bạn?
Mình vừa tìm được cách thấy được file trong thư mục được mount là trước khi chạy lệnh đó thì mình Vào Setting (của Docker) => Chọn Share Drivers => Tick vào Ổ đĩa chứa project của mình. Rồi remove container cũ và chạy lạy lệnh đó sẽ thấy được các files trong thư mục project được mount.
Vậy đường dẫn ~/../../xampp/htdocs/my bạn đã check chưa?
Lạ nhỉ bạn cấp quyền 777 cho thư mục myproject trên máy local. docker rm id (cái container cũ đi). Sau đó chạy lại lệnh start nhé.
Sau khi mình chạy lệnh: docker exec -it container_id_nay_copy bash thì có thư mục myproject nhưng trong thư mục myproject đó ko có file nào cả, chỉ là một folder empty.
Good present. Thank chị.
Đúng rồi mà sao "~" là về home rồi lại còn ".." ^^
Bạn kiểm tra container đang chạy bằng "docker ps". Sau đó copy id của container đó (container tutum mà start ấy nhé) Chạy lạnh sau: "docker exec -it container_id_nay_copy bash" Bây giờ đã vào được bash bên trong container rồi đó, bạn kiểm tra trong đường dẫn /var/www/html trong container có "myproject" không nhé.
Và bạn kiểm tra lại cả đường dẫn của bạn "~/../../xampp/htdocs/myproject" có đúng không nhé, bằng cách vào terminal rồi cd tới xem kết quả như nào nha
Mình chạy thử localhost:9000 thì OK rồi. Nhưng mình chạy localhost:9000/myproject thì trong đó không có file nào hết (tức là trong thư mục này /var/www/html/myproject ko có file nào của myproject) nhưng trên máy của mình thì trong thư mục myproject có tất cả các file của myproject? Vậy mình có cần bước nào để sau khi chạy lệnh này thì trong thư mục var/www/html/myproject sẽ có tất cả các file giống như bên máy mình:
docker run -tid -p 9000:80 -v ~/../../xampp/htdocs/myproject:/var/www/html/myproject --name myproject-server --link mysqlserver:mysql tutum/apache-php